diff --git a/chrono/manager/forms.py b/chrono/manager/forms.py index da6c70b5..8d8b7785 100644 --- a/chrono/manager/forms.py +++ b/chrono/manager/forms.py @@ -38,6 +38,7 @@ from django.utils.formats import date_format from django.utils.html import format_html, mark_safe from django.utils.translation import gettext_lazy as _ from django.utils.translation import pgettext +from gadjo.forms.widgets import MultiSelectWidget from chrono.agendas.models import ( WEEK_CHOICES, @@ -990,6 +991,7 @@ class EventsReportForm(forms.Form): agendas = forms.ModelMultipleChoiceField( label=_('Agendas'), queryset=Agenda.objects.none(), + widget=MultiSelectWidget, ) status = forms.MultipleChoiceField( label=_('Status'), diff --git a/chrono/manager/templates/chrono/manager_event_report.html b/chrono/manager/templates/chrono/manager_event_report.html index dfd1ae77..fc49dd43 100644 --- a/chrono/manager/templates/chrono/manager_event_report.html +++ b/chrono/manager/templates/chrono/manager_event_report.html @@ -1,5 +1,15 @@ {% extends "chrono/manager_home.html" %} -{% load i18n %} +{% load static i18n %} + +{% block css %} + {{ block.super }} + +{% endblock %} + +{% block extrascripts %} + {{ block.super }} + +{% endblock %} {% block breadcrumb %} {{ block.super }} diff --git a/tests/manager/test_event.py b/tests/manager/test_event.py index 4f3fe9a5..7e8a56a7 100644 --- a/tests/manager/test_event.py +++ b/tests/manager/test_event.py @@ -1,4 +1,5 @@ import codecs +import copy import datetime import json from unittest import mock @@ -3534,11 +3535,19 @@ def test_events_report(app, admin_user): recurrent_event4.invoiced = True recurrent_event4.save() + def add_agenda(resp): + select = copy.copy(resp.form.fields['agendas'][0]) + select.id = 'id_agendas_1' + resp.form.fields['agendas'].append(select) + resp.form.field_order.append(('agendas', select)) + login(app) resp = app.get('/manage/agendas/events/report/') + add_agenda(resp) resp.form['date_start'] = '2022-02-01' resp.form['date_end'] = '2022-02-28' - resp.form['agendas'] = [agenda1.pk, agenda2.pk] + resp.form.get('agendas', 0).value = agenda1.pk + resp.form.get('agendas', 1).value = agenda2.pk resp.form['status'] = ['not-checked', 'not-invoiced'] resp = resp.form.submit() events = resp.context['form'].get_events() @@ -3546,9 +3555,11 @@ def test_events_report(app, admin_user): assert list(events['not_invoiced']) == [event1, recurrent_event1, event2, recurrent_event2] resp = app.get('/manage/agendas/events/report/') + add_agenda(resp) resp.form['date_start'] = '2022-02-01' resp.form['date_end'] = '2022-02-28' - resp.form['agendas'] = [agenda1.pk, agenda2.pk] + resp.form.get('agendas', 0).value = agenda1.pk + resp.form.get('agendas', 1).value = agenda2.pk resp.form['status'] = ['not-checked'] resp = resp.form.submit() events = resp.context['form'].get_events() @@ -3556,9 +3567,11 @@ def test_events_report(app, admin_user): assert 'not_invoiced' not in events resp = app.get('/manage/agendas/events/report/') + add_agenda(resp) resp.form['date_start'] = '2022-02-01' resp.form['date_end'] = '2022-02-28' - resp.form['agendas'] = [agenda1.pk, agenda2.pk] + resp.form.get('agendas', 0).value = agenda1.pk + resp.form.get('agendas', 1).value = agenda2.pk resp.form['status'] = ['not-invoiced'] resp = resp.form.submit() events = resp.context['form'].get_events() @@ -3568,7 +3581,7 @@ def test_events_report(app, admin_user): resp = app.get('/manage/agendas/events/report/') resp.form['date_start'] = '2022-02-01' resp.form['date_end'] = '2022-02-28' - resp.form['agendas'] = [agenda2.pk] + resp.form.get('agendas', 0).value = agenda2.pk resp.form['status'] = ['not-invoiced'] resp = resp.form.submit() events = resp.context['form'].get_events() @@ -3578,7 +3591,7 @@ def test_events_report(app, admin_user): resp = app.get('/manage/agendas/events/report/') resp.form['date_start'] = '2022-02-01' resp.form['date_end'] = '2022-02-28' - resp.form['agendas'] = [agenda2.pk] + resp.form.get('agendas', 0).value = agenda2.pk resp.form['status'] = ['not-checked', 'not-invoiced'] resp = resp.form.submit() events = resp.context['form'].get_events()