From cca5153734c022807be0b5306c91d4041c887c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cyrill=20K=C3=BCttel?= Date: Wed, 21 Aug 2024 20:26:08 +0200 Subject: [PATCH] Remove cantons filter (SEA-1472, SEA-1449). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It filtered only the consultations, but not other entities, — a subtlety which might be confusing to users. --- src/privatim/forms/filter_form.py | 10 +------ src/privatim/views/activities.py | 7 ----- tests/views/client/test_views_homepage.py | 35 ++++++++++++++++++++--- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/privatim/forms/filter_form.py b/src/privatim/forms/filter_form.py index 757f8f7..647a97a 100644 --- a/src/privatim/forms/filter_form.py +++ b/src/privatim/forms/filter_form.py @@ -1,6 +1,4 @@ -from wtforms import SelectField, DateField - -from privatim.forms.constants import cantons_named +from wtforms import DateField from privatim.forms.core import Form from wtforms.validators import Optional @@ -23,12 +21,6 @@ def __init__( session = request.dbsession super().__init__(request.POST, meta={'dbsession': session}) - canton: SelectField = SelectField( - _('Canton'), - choices=[('all', _('all'))] + cantons_named, - validators=[Optional()], - ) - consultation: CheckboxField = CheckboxField( _('Consultation'), ) diff --git a/src/privatim/views/activities.py b/src/privatim/views/activities.py index 4702670..6ff16af 100644 --- a/src/privatim/views/activities.py +++ b/src/privatim/views/activities.py @@ -95,7 +95,6 @@ def activities_view(request: 'IRequest') -> 'RenderDataOrRedirect': if request.GET.get('end_date') else None ) - form.canton.data = request.GET.get('canton', 'all') else: # Default GET response, show everything, no filter. form.consultation.data = True @@ -120,7 +119,6 @@ def activities_view(request: 'IRequest') -> 'RenderDataOrRedirect': 'end_date': ( form.end_date.data.isoformat() if form.end_date.data else '' ), - 'canton': form.canton.data, } return HTTPFound( location=request.route_url('activities', _query=query_params) @@ -131,7 +129,6 @@ def activities_view(request: 'IRequest') -> 'RenderDataOrRedirect': include_comments = form.comment.data start_date = form.start_date.data end_date = form.end_date.data - canton = form.canton.data start_datetime = ( datetime.combine(start_date, time.min, tzinfo=ZoneInfo("UTC")) @@ -157,10 +154,6 @@ def activities_view(request: 'IRequest') -> 'RenderDataOrRedirect': end_datetime, Consultation.updated, ) - if canton != 'all': - consultation_query = consultation_query.filter( - Consultation.secondary_tags.any(canton) - ) activities.extend( session.execute(consultation_query).unique().scalars().all() ) diff --git a/tests/views/client/test_views_homepage.py b/tests/views/client/test_views_homepage.py index 2cc8304..12fd694 100644 --- a/tests/views/client/test_views_homepage.py +++ b/tests/views/client/test_views_homepage.py @@ -5,6 +5,7 @@ def test_filter(client): session = client.db client.login_admin() + # Add a meeting and a consultation cons = create_consultation(tags=['ZH']) session.add(cons) @@ -12,8 +13,6 @@ def test_filter(client): session.add(meeting) session.commit() - # test the filter by tags (cantons) - # this one has no tags, should not appear in filter cons = Consultation( title='2nd Consultation', creator=client.user @@ -24,11 +23,10 @@ def test_filter(client): page = client.get('/activities') form = page.forms['filter_activities'] - form['canton'] = 'ZH' form['consultation'] = True form['meeting'] = False form['comment'] = False - page = form.submit().follow() + form.submit().follow() page = client.get('/activities') @@ -43,6 +41,35 @@ def test_filter(client): page = client.get('/activities') assert 'Powerpoint Parade' in page + # Test comment filter + + page = client.get(f'/consultation/{cons.id}') + page.form['content'] = 'What an interesting thought' + page.form.submit() + page = client.get('/activities') + assert 'What an interesting thought' in page + + form['consultation'] = True + form['meeting'] = True + form['comment'] = False + page = form.submit().follow() + assert 'What an interesting thought' not in page + assert 'Test Consultation' in page + assert '2nd Consultation' in page + assert 'Powerpoint Parade' in page + + # Test all filters enabled + page = client.get('/activities') + form = page.forms['filter_activities'] + form['consultation'] = True + form['meeting'] = True + form['comment'] = True + page = form.submit().follow() + assert 'What an interesting thought' in page + assert 'Test Consultation' in page + assert '2nd Consultation' in page + assert 'Powerpoint Parade' in page + def test_translation_navbar(client): client.login_admin()