Projet

Général

Profil

0001-backoffice-convert-filter-varname-parameters-so-they.patch

Frédéric Péters, 17 juin 2020 08:56

Télécharger (2,52 ko)

Voir les différences:

Subject: [PATCH] backoffice: convert ?filter-<varname> parameters so they're
 kept (#44152)

 tests/test_backoffice_pages.py | 16 ++++++++++++++++
 wcs/backoffice/management.py   |  6 ++++++
 2 files changed, 22 insertions(+)
tests/test_backoffice_pages.py
6815 6815
    resp = app.get('/backoffice/management/form-title/user-custom-test-view/?filter-foo=A&keep-view-filters=on')
6816 6816
    assert 'filter-2-value' in resp.forms['listing-settings'].fields
6817 6817
    assert 'filter-3-value' in resp.forms['listing-settings'].fields
6818

  
6819

  
6820
def test_backoffice_table_varname_filter(pub):
6821
    create_superuser(pub)
6822
    create_environment(pub)
6823

  
6824
    app = login(get_app(pub))
6825
    resp = app.get('/backoffice/management/form-title/?filter-foo=A')
6826
    # check filter is applied
6827
    assert resp.text.count('<tr') == 6
6828
    # and kept in parameters
6829
    assert resp.forms['listing-settings']['filter-3'].checked
6830
    assert resp.forms['listing-settings']['filter-3-value'].value == 'A'
6831

  
6832
    resp = resp.forms['listing-settings'].submit()
6833
    assert resp.text.count('<tr') == 6
wcs/backoffice/management.py
1197 1197
            if get_request().form:
1198 1198
                field.enabled = ('filter-%s' % field.id in get_request().form) or (
1199 1199
                        'filter-%s' % field.varname in get_request().form)
1200
                if 'filter-%s' % field.varname in get_request().form:
1201
                    # if ?filter-<varname>= is used, take the value and put it
1202
                    # into filter-<field id>-value so it is used to fill the
1203
                    # fields.
1204
                    get_request().form['filter-%s-value' % field.id] = get_request().form.get(
1205
                            'filter-%s' % field.varname)
1200 1206
                if not field.enabled and self.view and get_request().form.get('keep-view-filters'):
1201 1207
                    # keep-view-filters=on is used to initialize page with
1202 1208
                    # filters from both the custom view and the query string.
1203
-