backoffice: fix formdata filtering by block field with autocomplete (#60451)
gitea-wip/wcs/pipeline/head Build started...
Details
gitea-wip/wcs/pipeline/head Build started...
Details
This commit is contained in:
parent
83d2f15c8d
commit
c298210b5b
|
@ -827,6 +827,10 @@ def test_backoffice_block_field_filter(pub, local_user):
|
|||
resp.forms['listing-settings']['filter-0-2-value'].value = '2'
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
assert resp.text.count('<tr') == 1 + 5
|
||||
resp2 = app.get(resp.request.path + 'filter-options?filter_field_id=0-2&_search=foo')
|
||||
assert [x['id'] for x in resp2.json['data']] == ['1']
|
||||
resp2 = app.get(resp.request.path + 'filter-options?filter_field_id=0-2&_search=bar')
|
||||
assert [x['id'] for x in resp2.json['data']] == ['2']
|
||||
|
||||
# bool
|
||||
resp = app.get('/backoffice/management/form-title/')
|
||||
|
|
|
@ -981,7 +981,11 @@ class FormPage(Directory):
|
|||
get_request().is_json_marker = True
|
||||
field_id = get_request().form.get('filter_field_id')
|
||||
for filter_field in self.get_formdef_fields():
|
||||
if filter_field.id == field_id:
|
||||
is_in_block_field = getattr(filter_field, 'block_field', None)
|
||||
filter_field.contextual_id = filter_field.id
|
||||
if is_in_block_field:
|
||||
filter_field.contextual_id = '%s-%s' % (filter_field.block_field.id, filter_field.id)
|
||||
if filter_field.contextual_id == field_id:
|
||||
break
|
||||
else:
|
||||
raise errors.TraversalError()
|
||||
|
|
Loading…
Reference in New Issue