backoffice: fix display value of autocomplete item criteria (#77302)
gitea/wcs/pipeline/head This commit looks good Details

This commit is contained in:
Lauréline Guérin 2023-05-16 15:47:23 +02:00
parent 18f74566f3
commit 73ec131001
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 29 additions and 1 deletions

View File

@ -382,6 +382,31 @@ def test_backoffice_item_filter(pub):
else:
assert [x['id'] for x in resp2.json['data']] == ['â', 'b', 'd']
# item field in autocomplete mode, check that label is weel displayed in option
CardDef.wipe()
carddef = CardDef()
carddef.name = 'foo'
carddef.fields = [
fields.StringField(id='1', label='Test', type='string', varname='foo'),
]
carddef.digest_templates = {'default': 'card {{ form_var_foo }}'}
carddef.store()
card_ids = {}
for label in ('foo', 'bar', 'baz', 'foo, bar'):
card = carddef.data_class()()
card.data = {'1': label}
card.just_created()
card.store()
card_ids[label] = str(card.id)
formdef.fields[0].display_mode = 'autocomplete'
formdef.fields[0].data_source = {'type': 'carddef:foo', 'value': ''}
formdef.store()
resp.forms['listing-settings']['filter-4-value'].force_value(card_ids['baz'])
resp = resp.forms['listing-settings'].submit()
assert [x[2] for x in resp.forms['listing-settings']['filter-4-value'].options] == ['card baz']
def test_backoffice_item_double_filter(pub):
pub.user_class.wipe()

View File

@ -1321,7 +1321,10 @@ class FormPage(FormdefDirectoryBase):
else:
options = [(None, '', '')]
if not is_multi_values:
options = [(filter_field_value, filter_field_value or '', filter_field_value or '')]
value_display = filter_field_value or ''
if filter_field_value:
value_display = filter_field.get_display_value(filter_field_value)
options = [(filter_field_value, value_display, filter_field_value or '')]
attrs = {'data-remote-options': str(filter_field.contextual_id)}
get_response().add_javascript(
['jquery.js', '../../i18n.js', 'qommon.forms.js', 'select2.js']