backoffice: provide default filter (all) as hidden input for stats (#78664) #425

Merged
fpeters merged 1 commits from wip/78664-stats-default-filter into main 2023-06-26 06:15:31 +02:00
2 changed files with 5 additions and 2 deletions

View File

@ -77,13 +77,14 @@ def test_backoffice_statistics_status_filter(pub):
app = login(get_app(pub))
resp = app.get('/backoffice/management/form-title/')
resp = resp.click('Statistics')
assert 'filter' not in resp.forms['listing-settings'].fields # status is not displayed by default
assert '<h2>Filters</h2>' not in resp.text
# status filter is not displayed by default but an hidden field is set.
assert resp.forms['listing-settings']['filter'].attrs['type'] == 'hidden'
# add 'status' as a filter
resp.forms['listing-settings']['filter-status'].checked = True
resp = resp.forms['listing-settings'].submit()
assert 'filter' in resp.forms['listing-settings'].fields
assert resp.forms['listing-settings']['filter'].tag == 'select'
assert '<h2>Filters</h2>' not in resp.text
assert resp.forms['listing-settings']['filter'].value == 'all'

View File

@ -2829,6 +2829,8 @@ class FormPage(FormdefDirectoryBase):
r = TemplateIO(html=True)
r += htmltext('<form id="listing-settings" action="stats">')
r += self.get_filter_sidebar(selected_filter=selected_filter, mode='stats')
if '<select name="filter">' not in str(r.getvalue()):
r += htmltext('<input type="hidden" name="filter" value="all">')
r += htmltext('<button class="refresh">%s</button>') % _('Refresh')
r += htmltext('</form>')
return r.getvalue()