Skip to content

Commit

Permalink
Add view text to options (#667)
Browse files Browse the repository at this point in the history
  • Loading branch information
jochenklar committed Oct 5, 2023
1 parent 8e3ae8d commit ae4a57a
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 3 deletions.
2 changes: 2 additions & 0 deletions rdmo/management/assets/js/components/edit/EditOption.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ const EditOption = ({ config, option, elements, elementActions }) => {
onChange={updateOption} />
<Textarea config={config} element={option} field={`help_${lang_code }`}
onChange={updateOption} />
<Textarea config={config} element={option} field={`view_text_${lang_code }`}
onChange={updateOption} />
</div>
</div>
</Tab>
Expand Down
1 change: 1 addition & 0 deletions rdmo/options/imports.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def import_option(element, save=False, user=None):

set_lang_field(option, 'text', element)
set_lang_field(option, 'help', element)
set_lang_field(option, 'view_text', element)

validate_instance(option, element, OptionLockedValidator, OptionUniqueURIValidator)

Expand Down
38 changes: 38 additions & 0 deletions rdmo/options/migrations/0034_option_view_text.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Generated by Django 4.2.5 on 2023-10-05 11:07

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('options', '0033_option_help'),
]

operations = [
migrations.AddField(
model_name='option',
name='view_text_lang1',
field=models.TextField(blank=True, help_text='The view text for this option in the primary language.', null=True, verbose_name='View text (primary)'),
),
migrations.AddField(
model_name='option',
name='view_text_lang2',
field=models.TextField(blank=True, help_text='The view text for this option in the secondary language.', null=True, verbose_name='View text (secondary)'),
),
migrations.AddField(
model_name='option',
name='view_text_lang3',
field=models.TextField(blank=True, help_text='The view text for this option in the tertiary language.', null=True, verbose_name='View text (tertiary)'),
),
migrations.AddField(
model_name='option',
name='view_text_lang4',
field=models.TextField(blank=True, help_text='The view text for this option in the quaternary language.', null=True, verbose_name='View text (quaternary)'),
),
migrations.AddField(
model_name='option',
name='view_text_lang5',
field=models.TextField(blank=True, help_text='The view text for this option in the quinary language.', null=True, verbose_name='View text (quinary)'),
),
]
29 changes: 29 additions & 0 deletions rdmo/options/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,31 @@ class Option(models.Model, TranslationMixin):
verbose_name=_('Help (quinary)'),
help_text=_('The help text for this option in the quinary language.')
)
view_text_lang1 = models.TextField(
null=True, blank=True,
verbose_name=_('View text (primary)'),
help_text=_('The view text for this option in the primary language.')
)
view_text_lang2 = models.TextField(
null=True, blank=True,
verbose_name=_('View text (secondary)'),
help_text=_('The view text for this option in the secondary language.')
)
view_text_lang3 = models.TextField(
null=True, blank=True,
verbose_name=_('View text (tertiary)'),
help_text=_('The view text for this option in the tertiary language.')
)
view_text_lang4 = models.TextField(
null=True, blank=True,
verbose_name=_('View text (quaternary)'),
help_text=_('The view text for this option in the quaternary language.')
)
view_text_lang5 = models.TextField(
null=True, blank=True,
verbose_name=_('View text (quinary)'),
help_text=_('The view text for this option in the quinary language.')
)
additional_input = models.CharField(
max_length=256, blank=True, default=False, choices=ADDITIONAL_INPUT_CHOICES,
verbose_name=_('Additional input'),
Expand All @@ -262,6 +287,10 @@ def text(self):
def help(self):
return self.trans('help')

@property
def view_text(self):
return self.trans('view_text')

@property
def text_and_help(self):
return f'{self.text} [{self.help}]' if self.help else self.text
Expand Down
1 change: 1 addition & 0 deletions rdmo/options/renderers/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def render_option(self, xml, option):
for lang_code, lang_string, lang_field in get_languages():
self.render_text_element(xml, 'text', {'lang': lang_code}, option['text_%s' % lang_code])
self.render_text_element(xml, 'help', {'lang': lang_code}, option['help_%s' % lang_code])
self.render_text_element(xml, 'view_text', {'lang': lang_code}, option['view_text_%s' % lang_code])

self.render_text_element(xml, 'additional_input', {}, option['additional_input'])
xml.endElement('option')
3 changes: 2 additions & 1 deletion rdmo/options/serializers/export.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ class Meta:
)
trans_fields = (
'text',
'help'
'help',
'view_text'
)


Expand Down
4 changes: 3 additions & 1 deletion rdmo/options/serializers/v1/option.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class Meta:
'locked',
'text',
'help',
'view_text',
'label',
'additional_input',
'optionsets',
Expand All @@ -52,7 +53,8 @@ class Meta:
)
trans_fields = (
'text',
'help'
'help',
'view_text'
)
parent_fields = (
('optionsets', 'optionset', 'option', 'optionset_options'),
Expand Down
6 changes: 6 additions & 0 deletions rdmo/options/templates/options/export/option.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
<p>
<strong>{% trans 'Text' %}:</strong> {{ option.text }}
</p>
<p>
<strong>{% trans 'Help' %}:</strong> {{ option.help }}
</p>
<p>
<strong>{% trans 'View text' %}:</strong> {{ option.view_text }}
</p>
<p>
<strong>{% trans 'Additional input' %}:</strong> {{ option.additional_input }}
</p>
Expand Down
2 changes: 1 addition & 1 deletion rdmo/projects/models/value.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def as_dict(self):
@property
def value(self):
if self.option:
value = self.option.text or ''
value = self.option.view_text or self.option.text or ''
if self.option.additional_input and self.text:
value += ': ' + self.text
return value
Expand Down

0 comments on commit ae4a57a

Please sign in to comment.