i18n: translate items of ItemsField (#75030) #148
|
@ -5,7 +5,7 @@ import os
|
|||
import pytest
|
||||
|
||||
from wcs.carddef import CardDef
|
||||
from wcs.fields import ItemField, PageField, StringField
|
||||
from wcs.fields import ItemField, ItemsField, PageField, StringField
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.i18n import TranslatableMessage
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
|
@ -96,6 +96,12 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
items=['first', 'second', 'third'],
|
||||
hint='a second hint text',
|
||||
),
|
||||
ItemsField(
|
||||
id='3',
|
||||
label='mutiple list field',
|
||||
type='items',
|
||||
items=['first', 'second', 'third'],
|
||||
),
|
||||
]
|
||||
formdef.workflow = workflow
|
||||
formdef.store()
|
||||
|
@ -108,6 +114,7 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
('page field', 'champ page'),
|
||||
('text field', 'champ texte'),
|
||||
('list field', 'champ liste'),
|
||||
('multiple list field', 'champ liste multiple'),
|
||||
('first', 'premier'),
|
||||
('second', 'deuxième'),
|
||||
('third', 'troisième'),
|
||||
|
@ -133,12 +140,14 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
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'
|
||||
assert resp.pyquery('[data-field-id="3"] li:first-child span').text() == 'first'
|
||||
|
||||
resp = app.get(formdef.get_url(), headers={'Accept-Language': 'fr'})
|
||||
assert resp.pyquery('#steps li.first .label').text() == 'champ page'
|
||||
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'
|
||||
assert resp.pyquery('[data-field-id="3"] li:first-child span').text() == 'premier'
|
||||
|
||||
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'
|
||||
|
@ -147,6 +156,7 @@ def test_i18n_form(pub, user, emails, http_requests):
|
|||
|
||||
resp.form['f1'] = 'test'
|
||||
resp.form['f2'] = 'second'
|
||||
resp.form['f3$element0'] = True
|
||||
resp = resp.form.submit('submit', headers={'Accept-Language': 'fr'})
|
||||
assert resp.pyquery('#form_label_f1').text() == 'champ texte'
|
||||
assert resp.form['f2'].value == 'second'
|
||||
|
|
|
@ -2619,7 +2619,7 @@ class ItemsField(WidgetField, ItemFieldMixin):
|
|||
self._cached_data_source = [x[:3] for x in data_sources.get_items(self.data_source)]
|
||||
return self._cached_data_source[:]
|
||||
elif self.items:
|
||||
return [(x, x) for x in self.items]
|
||||
return [(x, get_publisher().translate(x)) for x in self.items]
|
||||
else:
|
||||
return []
|
||||
|
||||
|
|
Loading…
Reference in New Issue