manager: use gadjo select multiple widget for agendas in report (#75417)
gitea/chrono/pipeline/head This commit looks good
Details
gitea/chrono/pipeline/head This commit looks good
Details
This commit is contained in:
parent
a9d1287726
commit
c38f8e9280
|
@ -38,6 +38,7 @@ from django.utils.formats import date_format
|
||||||
from django.utils.html import format_html, mark_safe
|
from django.utils.html import format_html, mark_safe
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.utils.translation import pgettext
|
from django.utils.translation import pgettext
|
||||||
|
from gadjo.forms.widgets import MultiSelectWidget
|
||||||
|
|
||||||
from chrono.agendas.models import (
|
from chrono.agendas.models import (
|
||||||
WEEK_CHOICES,
|
WEEK_CHOICES,
|
||||||
|
@ -990,6 +991,7 @@ class EventsReportForm(forms.Form):
|
||||||
agendas = forms.ModelMultipleChoiceField(
|
agendas = forms.ModelMultipleChoiceField(
|
||||||
label=_('Agendas'),
|
label=_('Agendas'),
|
||||||
queryset=Agenda.objects.none(),
|
queryset=Agenda.objects.none(),
|
||||||
|
widget=MultiSelectWidget,
|
||||||
)
|
)
|
||||||
status = forms.MultipleChoiceField(
|
status = forms.MultipleChoiceField(
|
||||||
label=_('Status'),
|
label=_('Status'),
|
||||||
|
|
|
@ -1,5 +1,15 @@
|
||||||
{% extends "chrono/manager_home.html" %}
|
{% 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 breadcrumb %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import codecs
|
import codecs
|
||||||
|
import copy
|
||||||
import datetime
|
import datetime
|
||||||
import json
|
import json
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
@ -3534,11 +3535,19 @@ def test_events_report(app, admin_user):
|
||||||
recurrent_event4.invoiced = True
|
recurrent_event4.invoiced = True
|
||||||
recurrent_event4.save()
|
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)
|
login(app)
|
||||||
resp = app.get('/manage/agendas/events/report/')
|
resp = app.get('/manage/agendas/events/report/')
|
||||||
|
add_agenda(resp)
|
||||||
resp.form['date_start'] = '2022-02-01'
|
resp.form['date_start'] = '2022-02-01'
|
||||||
resp.form['date_end'] = '2022-02-28'
|
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.form['status'] = ['not-checked', 'not-invoiced']
|
||||||
resp = resp.form.submit()
|
resp = resp.form.submit()
|
||||||
events = resp.context['form'].get_events()
|
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]
|
assert list(events['not_invoiced']) == [event1, recurrent_event1, event2, recurrent_event2]
|
||||||
|
|
||||||
resp = app.get('/manage/agendas/events/report/')
|
resp = app.get('/manage/agendas/events/report/')
|
||||||
|
add_agenda(resp)
|
||||||
resp.form['date_start'] = '2022-02-01'
|
resp.form['date_start'] = '2022-02-01'
|
||||||
resp.form['date_end'] = '2022-02-28'
|
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.form['status'] = ['not-checked']
|
||||||
resp = resp.form.submit()
|
resp = resp.form.submit()
|
||||||
events = resp.context['form'].get_events()
|
events = resp.context['form'].get_events()
|
||||||
|
@ -3556,9 +3567,11 @@ def test_events_report(app, admin_user):
|
||||||
assert 'not_invoiced' not in events
|
assert 'not_invoiced' not in events
|
||||||
|
|
||||||
resp = app.get('/manage/agendas/events/report/')
|
resp = app.get('/manage/agendas/events/report/')
|
||||||
|
add_agenda(resp)
|
||||||
resp.form['date_start'] = '2022-02-01'
|
resp.form['date_start'] = '2022-02-01'
|
||||||
resp.form['date_end'] = '2022-02-28'
|
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.form['status'] = ['not-invoiced']
|
||||||
resp = resp.form.submit()
|
resp = resp.form.submit()
|
||||||
events = resp.context['form'].get_events()
|
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 = app.get('/manage/agendas/events/report/')
|
||||||
resp.form['date_start'] = '2022-02-01'
|
resp.form['date_start'] = '2022-02-01'
|
||||||
resp.form['date_end'] = '2022-02-28'
|
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.form['status'] = ['not-invoiced']
|
||||||
resp = resp.form.submit()
|
resp = resp.form.submit()
|
||||||
events = resp.context['form'].get_events()
|
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 = app.get('/manage/agendas/events/report/')
|
||||||
resp.form['date_start'] = '2022-02-01'
|
resp.form['date_start'] = '2022-02-01'
|
||||||
resp.form['date_end'] = '2022-02-28'
|
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.form['status'] = ['not-checked', 'not-invoiced']
|
||||||
resp = resp.form.submit()
|
resp = resp.form.submit()
|
||||||
events = resp.context['form'].get_events()
|
events = resp.context['form'].get_events()
|
||||||
|
|
Loading…
Reference in New Issue