backoffice: convert ?filter-<varname> parameters so they're kept (#44152)
This commit is contained in:
parent
020ec09e9c
commit
5811c4b918
|
@ -6815,3 +6815,19 @@ def test_backoffice_custom_view_keep_filters(pub):
|
|||
resp = app.get('/backoffice/management/form-title/user-custom-test-view/?filter-foo=A&keep-view-filters=on')
|
||||
assert 'filter-2-value' in resp.forms['listing-settings'].fields
|
||||
assert 'filter-3-value' in resp.forms['listing-settings'].fields
|
||||
|
||||
|
||||
def test_backoffice_table_varname_filter(pub):
|
||||
create_superuser(pub)
|
||||
create_environment(pub)
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/management/form-title/?filter-foo=A')
|
||||
# check filter is applied
|
||||
assert resp.text.count('<tr') == 6
|
||||
# and kept in parameters
|
||||
assert resp.forms['listing-settings']['filter-3'].checked
|
||||
assert resp.forms['listing-settings']['filter-3-value'].value == 'A'
|
||||
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
assert resp.text.count('<tr') == 6
|
||||
|
|
|
@ -1197,6 +1197,12 @@ class FormPage(Directory):
|
|||
if get_request().form:
|
||||
field.enabled = ('filter-%s' % field.id in get_request().form) or (
|
||||
'filter-%s' % field.varname in get_request().form)
|
||||
if 'filter-%s' % field.varname in get_request().form:
|
||||
# if ?filter-<varname>= is used, take the value and put it
|
||||
# into filter-<field id>-value so it is used to fill the
|
||||
# fields.
|
||||
get_request().form['filter-%s-value' % field.id] = get_request().form.get(
|
||||
'filter-%s' % field.varname)
|
||||
if not field.enabled and self.view and get_request().form.get('keep-view-filters'):
|
||||
# keep-view-filters=on is used to initialize page with
|
||||
# filters from both the custom view and the query string.
|
||||
|
|
Loading…
Reference in New Issue