manager: use gadjo select multiple widget for agendas in report (#75417)
gitea/chrono/pipeline/head This commit looks good Details

This commit is contained in:
Lauréline Guérin 2023-03-21 12:03:21 +01:00
parent a9d1287726
commit c38f8e9280
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 31 additions and 6 deletions

View File

@ -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'),

View File

@ -1,5 +1,15 @@
{% extends "chrono/manager_home.html" %}
{% load i18n %}
{% load static i18n %}
{% block css %}
{{ block.super }}
<link rel="stylesheet" type="text/css" media="all" href="{% static "css/gadjo.multiselectwidget.css" %}" />
{% endblock %}
{% block extrascripts %}
{{ block.super }}
<script src="{% static "js/gadjo.multiselectwidget.js" %}"></script>
{% endblock %}
{% block breadcrumb %}
{{ block.super }}

View File

@ -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()