Projet

Général

Profil

0001-backoffice-add-query-parameter-to-keep-custom-view-f.patch

Frédéric Péters, 01 mai 2020 11:31

Télécharger (3,02 ko)

Voir les différences:

Subject: [PATCH] backoffice: add query parameter to keep custom view filters
 (#42315)

 tests/test_backoffice_pages.py | 32 ++++++++++++++++++++++++++++++++
 wcs/backoffice/management.py   |  4 ++++
 2 files changed, 36 insertions(+)
tests/test_backoffice_pages.py
6581 6581
    resp = resp.forms['save-custom-view'].submit()
6582 6582
    assert resp.location.endswith('/user-card-view/')
6583 6583
    resp = resp.follow()
6584

  
6585

  
6586
def test_backoffice_custom_view_keep_filters(pub):
6587
    create_superuser(pub)
6588
    create_environment(pub)
6589

  
6590
    app = login(get_app(pub))
6591
    resp = app.get('/backoffice/management/form-title/')
6592
    assert resp.text.count('<span>User Label</span>') == 1
6593
    assert resp.text.count('<tr') == 18
6594

  
6595
    # filters
6596
    resp.forms[0]['filter-2'].checked = True
6597
    resp = resp.forms['listing-settings'].submit()
6598

  
6599
    resp.forms['listing-settings']['filter-2-value'] = 'baz'
6600
    resp = resp.forms['listing-settings'].submit()
6601

  
6602
    resp.forms['save-custom-view']['title'] = 'custom test view'
6603
    resp = resp.forms['save-custom-view'].submit()
6604

  
6605
    resp = app.get('/backoffice/management/form-title/user-custom-test-view/')
6606
    assert 'filter-2-value' in resp.forms['listing-settings'].fields
6607
    assert 'filter-3-value' not in resp.forms['listing-settings'].fields
6608

  
6609
    resp = app.get('/backoffice/management/form-title/user-custom-test-view/?filter-foo=A')
6610
    assert 'filter-2-value' not in resp.forms['listing-settings'].fields
6611
    assert 'filter-3-value' in resp.forms['listing-settings'].fields
6612

  
6613
    resp = app.get('/backoffice/management/form-title/user-custom-test-view/?filter-foo=A&keep-view-filters=on')
6614
    assert 'filter-2-value' in resp.forms['listing-settings'].fields
6615
    assert 'filter-3-value' in resp.forms['listing-settings'].fields
wcs/backoffice/management.py
1184 1184
            if get_request().form:
1185 1185
                field.enabled = ('filter-%s' % field.id in get_request().form) or (
1186 1186
                        'filter-%s' % field.varname in get_request().form)
1187
                if not field.enabled and self.view and get_request().form.get('keep-view-filters'):
1188
                    # keep-view-filters=on is used to initialize page with
1189
                    # filters from both the custom view and the query string.
1190
                    field.enabled = (field.id in default_filters)
1187 1191
            else:
1188 1192
                field.enabled = (field.id in default_filters)
1189 1193
                if not self.view and field.type in ('item', 'items'):
1190
-