backoffice: add filtering on submission agent uuid (#45080)
This commit is contained in:
parent
fe9176bb91
commit
1bd794a71f
|
@ -1222,6 +1222,23 @@ def test_backoffice_submission_agent_filter(pub):
|
|||
resp = app.get('/backoffice/management/form-title/?limit=100&filter-submission-agent=on&filter-submission-agent-value=%s' % user2.id)
|
||||
assert resp.text.count('<tr') == 42
|
||||
|
||||
# filter on uuid
|
||||
user1.name_identifiers = ['0123456789']
|
||||
user1.store()
|
||||
resp = app.get(base_url + '&filter-submission-agent-uuid=0123456789')
|
||||
assert resp.text.count('>userA<') > 0
|
||||
assert resp.text.count('>userB<') == 0
|
||||
assert resp.pyquery.find('input[value=userA]') # displayed in sidebar
|
||||
# check it persists on filter changes
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
assert resp.text.count('>userA<') > 0
|
||||
assert resp.text.count('>userB<') == 0
|
||||
|
||||
# check with unknown uuid
|
||||
resp = app.get(base_url + '&filter-submission-agent-uuid=XXX')
|
||||
assert resp.text.count('>userA<') == 0
|
||||
assert resp.text.count('>userB<') == 0
|
||||
|
||||
|
||||
def test_backoffice_csv(pub):
|
||||
create_superuser(pub)
|
||||
|
|
|
@ -1617,6 +1617,19 @@ class FormPage(Directory):
|
|||
filters_dict['filter-user-value'] = '-1'
|
||||
get_request().form['filter-user-value'] = '-1'
|
||||
|
||||
if filter_field.type == 'submission-agent-id':
|
||||
# convert uuid based filter into local id filter
|
||||
name_id = filters_dict.get('filter-submission-agent-uuid')
|
||||
if name_id:
|
||||
nameid_users = get_publisher().user_class.get_users_with_name_identifier(name_id)
|
||||
get_request().form['filter-submission-agent'] = filters_dict['filter-submission-agent'] = 'on'
|
||||
if nameid_users:
|
||||
filters_dict['filter-submission-agent-value'] = str(nameid_users[0].id)
|
||||
get_request().form['filter-submission-agent-value'] = filters_dict['filter-submission-agent-value']
|
||||
else:
|
||||
filters_dict['filter-submission-agent-value'] = '-1'
|
||||
get_request().form['filter-submission-agent-value'] = '-1'
|
||||
|
||||
if filters_dict.get('filter-%s' % filter_field.id):
|
||||
# if there's a filter-%(id)s, it is used to enable the actual
|
||||
# filter, and the value will be found in filter-%s-value.
|
||||
|
|
Loading…
Reference in New Issue