api: allow named parameters as filters for formdata listing (#7115)

This commit is contained in:
Frédéric Péters 2015-04-30 15:02:33 +02:00
parent f2c84bb9f0
commit c173fd8854
1 changed files with 16 additions and 3 deletions

View File

@ -499,6 +499,7 @@ class FakeField(object):
self.type = type_
self.label = label
self.fake = True
self.varname = None
def get_view_value(self, value):
# just here to quack like a duck
@ -749,11 +750,23 @@ class FormPage(Directory):
if filter_field.type not in ('item', 'period-date'):
continue
if not get_request().form.get('filter-%s' % filter_field.id):
# the field is not enabled
filter_field_key = None
if filter_field.varname:
# if this is a field with a varname and filter-%(varname)s is
# present in the query string, enable this filter.
if get_request().form.get('filter-%s' % filter_field.varname):
filter_field_key = 'filter-%s' % filter_field.varname
if get_request().form.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.
filter_field_key = 'filter-%s-value' % filter_field.id
if not filter_field_key:
# if there's not known filter key, skip.
continue
filter_field_key = 'filter-%s-value' % filter_field.id
filter_field_value = get_request().form.get(filter_field_key)
if not filter_field_value:
continue