i18n: get translated field hints (#73752) #62
|
@ -85,8 +85,15 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
formdef = FormDef()
|
||||
formdef.name = 'test form'
|
||||
formdef.fields = [
|
||||
StringField(id='1', label='text field ', type='string'), # check strip()
|
||||
ItemField(id='2', label='list field', type='item', items=['first', 'second', 'third']),
|
||||
# label has a trailing white space to check for strip()
|
||||
StringField(id='1', label='text field ', type='string', hint='an hint text'),
|
||||
ItemField(
|
||||
id='2',
|
||||
label='list field',
|
||||
type='item',
|
||||
items=['first', 'second', 'third'],
|
||||
hint='a second hint text',
|
||||
),
|
||||
]
|
||||
formdef.workflow = workflow
|
||||
formdef.store()
|
||||
|
@ -109,6 +116,8 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
('Mail Body', 'Contenu du courriel'),
|
||||
('Notification Title', 'Titre de notification'),
|
||||
('Notification Body', 'Contenu de notification'),
|
||||
('an hint text', 'un texte d’aide'),
|
||||
('a second hint text', 'un deuxième texte d’aide'),
|
||||
):
|
||||
msg = TranslatableMessage()
|
||||
msg.string = en
|
||||
|
@ -118,14 +127,18 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
app = login(get_app(pub), username='foo', password='foo')
|
||||
resp = app.get(formdef.get_url())
|
||||
assert resp.pyquery('#form_label_f1').text() == 'text field *'
|
||||
assert resp.pyquery('[data-field-id="1"] .hint').text() == 'an hint text'
|
||||
assert resp.pyquery('select [value=""]').text() == 'a second hint text'
|
||||
|
||||
resp = app.get(formdef.get_url(), headers={'Accept-Language': 'fr'})
|
||||
assert resp.pyquery('#form_label_f1').text() == 'champ texte*'
|
||||
assert resp.pyquery('[data-field-id="1"] .hint').text() == 'un texte d’aide'
|
||||
assert resp.pyquery('select [value=""]').text() == 'un deuxième texte d’aide'
|
||||
|
||||
resp = app.get(formdef.get_url(), headers={'Accept-Language': 'fr,en;q=0.7,es;q=0.3'})
|
||||
assert resp.pyquery('h1').text() == 'formulaire test'
|
||||
assert resp.pyquery('#form_label_f1').text() == 'champ texte*'
|
||||
assert resp.pyquery('option:nth-child(2)').text() == 'deuxième'
|
||||
assert resp.pyquery('option:nth-child(3)').text() == 'deuxième'
|
||||
|
||||
resp.form['f1'] = 'test'
|
||||
resp.form['f2'] = 'second'
|
||||
|
|
|
@ -886,9 +886,9 @@ class WidgetField(Field):
|
|||
kwargs[k] = getattr(self, k)
|
||||
self.perform_more_widget_changes(form, kwargs)
|
||||
if self.hint and self.hint.startswith('<'):
|
||||
hint = htmltext(self.hint)
|
||||
hint = htmltext(get_publisher().translate(self.hint))
|
||||
else:
|
||||
hint = self.hint
|
||||
hint = get_publisher().translate(self.hint or '')
|
||||
form.add(self.widget_class, 'f%s' % self.id, title=self.label, hint=hint, **kwargs)
|
||||
widget = form.get_widget('f%s' % self.id)
|
||||
widget.field = self
|
||||
|
|
Loading…
Reference in New Issue