api: allow named parameters as filters for formdata listing (#7115)
This commit is contained in:
parent
f2c84bb9f0
commit
c173fd8854
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue