backoffice: don't mark just-enabled start/end filters as invalid (#45376)

This commit is contained in:
Frédéric Péters 2020-07-27 13:25:51 +02:00
parent 80a771ce9b
commit 9d0d9c2a3c
2 changed files with 5 additions and 0 deletions

View File

@ -665,6 +665,7 @@ def test_backoffice_filter(pub):
resp.forms['listing-settings']['filter-start'].checked = True
resp = resp.forms['listing-settings'].submit()
assert '>invalid date<' not in resp
resp.forms['listing-settings']['filter-start-value'] = datetime.datetime(2015, 2, 1).strftime('%Y-%m-%d')
resp = resp.forms['listing-settings'].submit()
assert resp.text.count('<td>baz</td>') == 0

View File

@ -1208,6 +1208,10 @@ class FormPage(Directory):
# fields.
get_request().form['filter-%s-value' % field.id] = get_request().form.get(
'filter-%s' % field.varname)
if field.varname in ('start', 'end') and get_request().form['filter-%s-value' % field.id] == 'on':
# reset start/end to an empty value when they're just
# being enabled
get_request().form['filter-%s-value' % field.id] = ''
if not field.enabled and self.view and get_request().form.get('keep-view-filters'):
# keep-view-filters=on is used to initialize page with
# filters from both the custom view and the query string.