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