0006-i18n-store-item-fields-display-value-in-original-lan.patch
tests/form_pages/test_i18n.py | ||
---|---|---|
260 | 260 |
# reload with different prefix |
261 | 261 |
resp = resp.test_app.get(resp.request.url.replace('/fr/', '/en/')) |
262 | 262 |
assert resp.pyquery('.field-type-item .value').text() == 'hello world' |
263 | ||
264 |
# check it's stored in original language in database |
|
265 |
assert formdef.data_class().select()[0].data == { |
|
266 |
'1': '1', |
|
267 |
'1_display': 'hello world', |
|
268 |
'1_structured': {'id': 1, 'text': 'hello world', 'foo': 'hello world'}, |
|
269 |
} |
wcs/fields.py | ||
---|---|---|
2398 | 2398 |
'%s_%s' % (real_data_source.get('value'), value) |
2399 | 2399 |
] = display_value |
2400 | 2400 |
return display_value |
2401 |
return self.get_display_value(value) |
|
2401 |
with get_publisher().with_language('default'): |
|
2402 |
return self.get_display_value(value) |
|
2402 | 2403 | |
2403 | 2404 |
def store_structured_value(self, data, field_id, raise_on_error=False): |
2404 | 2405 |
data_source = data_sources.get_object(self.data_source) |
... | ... | |
2408 | 2409 |
if data_source.type == 'jsonp': |
2409 | 2410 |
return |
2410 | 2411 | |
2411 |
value = data_source.get_structured_value(data.get(field_id)) |
|
2412 |
with get_publisher().with_language('default'): |
|
2413 |
value = data_source.get_structured_value(data.get(field_id)) |
|
2412 | 2414 |
if value is None and raise_on_error: |
2413 | 2415 |
raise SetValueError('a datasource is unavailable') |
2414 | 2416 |
wcs/qommon/publisher.py | ||
---|---|---|
375 | 375 | |
376 | 376 |
@contextmanager |
377 | 377 |
def with_language(self, language): |
378 |
if language == 'default': |
|
379 |
language = self.cfg.get('language', {}).get('language') |
|
378 | 380 |
if language is None or language == self.current_language: |
379 | 381 |
yield |
380 | 382 |
else: |
381 |
- |