Projet

Général

Profil

0001-backoffice-add-filtering-on-submission-agent-uuid-45.patch

Frédéric Péters, 13 juillet 2020 22:06

Télécharger (3,03 ko)

Voir les différences:

Subject: [PATCH] backoffice: add filtering on submission agent uuid (#45080)

 tests/test_backoffice_pages.py | 17 +++++++++++++++++
 wcs/backoffice/management.py   | 13 +++++++++++++
 2 files changed, 30 insertions(+)
tests/test_backoffice_pages.py
1222 1222
    resp = app.get('/backoffice/management/form-title/?limit=100&filter-submission-agent=on&filter-submission-agent-value=%s' % user2.id)
1223 1223
    assert resp.text.count('<tr') == 42
1224 1224

  
1225
    # filter on uuid
1226
    user1.name_identifiers = ['0123456789']
1227
    user1.store()
1228
    resp = app.get(base_url + '&filter-submission-agent-uuid=0123456789')
1229
    assert resp.text.count('>userA<') > 0
1230
    assert resp.text.count('>userB<') == 0
1231
    assert resp.pyquery.find('input[value=userA]')  # displayed in sidebar
1232
    # check it persists on filter changes
1233
    resp = resp.forms['listing-settings'].submit()
1234
    assert resp.text.count('>userA<') > 0
1235
    assert resp.text.count('>userB<') == 0
1236

  
1237
    # check with unknown uuid
1238
    resp = app.get(base_url + '&filter-submission-agent-uuid=XXX')
1239
    assert resp.text.count('>userA<') == 0
1240
    assert resp.text.count('>userB<') == 0
1241

  
1225 1242

  
1226 1243
def test_backoffice_csv(pub):
1227 1244
    create_superuser(pub)
wcs/backoffice/management.py
1617 1617
                        filters_dict['filter-user-value'] = '-1'
1618 1618
                        get_request().form['filter-user-value'] = '-1'
1619 1619

  
1620
            if filter_field.type == 'submission-agent-id':
1621
                # convert uuid based filter into local id filter
1622
                name_id = filters_dict.get('filter-submission-agent-uuid')
1623
                if name_id:
1624
                    nameid_users = get_publisher().user_class.get_users_with_name_identifier(name_id)
1625
                    get_request().form['filter-submission-agent'] = filters_dict['filter-submission-agent'] = 'on'
1626
                    if nameid_users:
1627
                        filters_dict['filter-submission-agent-value'] = str(nameid_users[0].id)
1628
                        get_request().form['filter-submission-agent-value'] = filters_dict['filter-submission-agent-value']
1629
                    else:
1630
                        filters_dict['filter-submission-agent-value'] = '-1'
1631
                        get_request().form['filter-submission-agent-value'] = '-1'
1632

  
1620 1633
            if filters_dict.get('filter-%s' % filter_field.id):
1621 1634
                # if there's a filter-%(id)s, it is used to enable the actual
1622 1635
                # filter, and the value will be found in filter-%s-value.
1623
-