forms: add an option to have items field shown in default criterias (#23369)
This commit is contained in:
parent
f89f11e154
commit
e0f071b670
|
@ -594,6 +594,18 @@ def test_backoffice_default_filter(pub):
|
|||
resp = app.get('/backoffice/management/form-title/')
|
||||
assert 'filter-2-value' in resp.form.fields
|
||||
|
||||
# same check for items field
|
||||
formdef.fields.append(
|
||||
fields.ItemsField(id='4', label='4th field', type='items', items=['foo', 'bar', 'baz']))
|
||||
formdef.store()
|
||||
resp = app.get('/backoffice/management/form-title/')
|
||||
assert not 'filter-4-value' in resp.form.fields
|
||||
|
||||
formdef.fields[-1].in_filters = True
|
||||
formdef.store()
|
||||
resp = app.get('/backoffice/management/form-title/')
|
||||
assert 'filter-4-value' in resp.form.fields
|
||||
|
||||
def test_backoffice_bool_filter(pub):
|
||||
create_superuser(pub)
|
||||
create_environment(pub)
|
||||
|
|
|
@ -1027,7 +1027,7 @@ class FormPage(Directory):
|
|||
elif mode == 'stats':
|
||||
# enable period filters by default
|
||||
field.enabled = (field.id in ('start', 'end'))
|
||||
if field.type == 'item':
|
||||
if field.type in ('item', 'items'):
|
||||
field.enabled = field.in_filters
|
||||
|
||||
r += htmltext('<h3><span>%s</span> <span class="change">(<a id="filter-settings">%s</a>)</span></h3>' % (
|
||||
|
|
|
@ -1277,6 +1277,7 @@ class ItemsField(WidgetField):
|
|||
items = []
|
||||
max_choices = 0
|
||||
data_source = {}
|
||||
in_filters = False
|
||||
display_disabled_items = False
|
||||
|
||||
widget_class = CheckboxesWidget
|
||||
|
@ -1312,6 +1313,8 @@ class ItemsField(WidgetField):
|
|||
|
||||
def fill_admin_form(self, form):
|
||||
WidgetField.fill_admin_form(self, form)
|
||||
form.add(CheckboxWidget, 'in_filters', title=_('Display in default filters'),
|
||||
value=self.in_filters, advanced=True)
|
||||
form.add(WidgetList, 'items', title = _('Items'), element_type = StringWidget,
|
||||
value = self.items, required = False,
|
||||
element_kwargs = {'render_br': False, 'size': 50},
|
||||
|
@ -1332,7 +1335,7 @@ class ItemsField(WidgetField):
|
|||
|
||||
def get_admin_attributes(self):
|
||||
return WidgetField.get_admin_attributes(self) + ['items',
|
||||
'max_choices', 'data_source', 'anonymise',
|
||||
'max_choices', 'data_source', 'in_filters', 'anonymise',
|
||||
'display_disabled_items']
|
||||
|
||||
def check_admin_form(self, form):
|
||||
|
|
Loading…
Reference in New Issue