From e81880f57ab12ab7782c6357b441dd7623102958 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Sat, 15 Feb 2025 21:51:08 +0100 Subject: [PATCH] =?UTF-8?q?On=20peut=20trier=20les=20=C3=A9v=C3=A9nements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #312 --- src/agenda_culturel/filters.py | 18 ++++++++ .../locale/fr/LC_MESSAGES/django.po | 42 ++++++++++++++----- src/agenda_culturel/static/style.scss | 6 +++ .../templates/agenda_culturel/recent.html | 4 +- .../templates/agenda_culturel/side-nav.html | 2 +- 5 files changed, 58 insertions(+), 14 deletions(-) diff --git a/src/agenda_culturel/filters.py b/src/agenda_culturel/filters.py index ddcba66..be97089 100644 --- a/src/agenda_culturel/filters.py +++ b/src/agenda_culturel/filters.py @@ -338,12 +338,30 @@ class EventFilterAdmin(django_filters.FilterSet): method="filter_by_in_recurrent_import", widget=forms.CheckboxSelectMultiple) + o = django_filters.ChoiceFilter( + label=_("Sort by"), + choices=[ + ("moderated_date", _("last moderated first")), + ("modified_date", _("last modified first")), + ("imported_date", _("last imported first")), + ("created_date", _("last created first")), + ], + method="sort_on_date") + import_sources = django_filters.ModelChoiceFilter( label=_("Imported from"), method="filter_by_source", queryset=RecurrentImport.objects.all().order_by("name__unaccent") ) + def sort_on_date(self, queryset, name, value): + print(name, value) + if value in ['created_date', 'imported_date', 'modified_date', 'moderated_date']: + notnull = value + '__isnull' + return queryset.filter(**{notnull: False}).order_by('-' + value) + else: + return queryset + def filter_by_source(self, queryset, name, value): src = RecurrentImport.objects.get(pk=value.pk).source return queryset.filter(import_sources__contains=[src]) diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index 7610bce..80f03ef 100644 --- a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po +++ b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: agenda_culturel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-12 15:21+0100\n" +"POT-Creation-Date: 2025-02-15 20:00+0100\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -99,12 +99,12 @@ msgid "Representative version" msgstr "Version représentative" #: agenda_culturel/filters.py:325 agenda_culturel/filters.py:331 -#: agenda_culturel/filters.py:337 agenda_culturel/filters.py:436 +#: agenda_culturel/filters.py:337 agenda_culturel/filters.py:455 msgid "Yes" msgstr "Oui" #: agenda_culturel/filters.py:325 agenda_culturel/filters.py:331 -#: agenda_culturel/filters.py:337 agenda_culturel/filters.py:436 +#: agenda_culturel/filters.py:337 agenda_culturel/filters.py:455 msgid "No" msgstr "Non" @@ -120,37 +120,57 @@ msgstr "Inclut dans un import récurrent" msgid "Imported from" msgstr "Importé depuis" -#: agenda_culturel/filters.py:397 agenda_culturel/models.py:648 +#: agenda_culturel/filters.py:348 +msgid "Sort by" +msgstr "Trier par" + +#: agenda_culturel/filters.py:350 +msgid "last created first" +msgstr "dernier créé d'abord" + +#: agenda_culturel/filters.py:351 +msgid "last imported first" +msgstr "dernier importé d'abord" + +#: agenda_culturel/filters.py:352 +msgid "last modified first" +msgstr "dernier modifié d'abord" + +#: agenda_culturel/filters.py:353 +msgid "last moderated first" +msgstr "dernier modéré d'abord" + +#: agenda_culturel/filters.py:416 agenda_culturel/models.py:648 #: agenda_culturel/models.py:2302 msgid "Status" msgstr "Status" -#: agenda_culturel/filters.py:398 agenda_culturel/models.py:2086 +#: agenda_culturel/filters.py:417 agenda_culturel/models.py:2086 msgid "Closed" msgstr "Fermé" -#: agenda_culturel/filters.py:398 +#: agenda_culturel/filters.py:417 msgid "Open" msgstr "Ouvert" -#: agenda_culturel/filters.py:402 agenda_culturel/filters.py:403 +#: agenda_culturel/filters.py:421 agenda_culturel/filters.py:422 #: agenda_culturel/models.py:2080 msgid "Spam" msgstr "Spam" -#: agenda_culturel/filters.py:403 +#: agenda_culturel/filters.py:422 msgid "Non spam" msgstr "Non spam" -#: agenda_culturel/filters.py:408 agenda_culturel/models.py:2101 +#: agenda_culturel/filters.py:427 agenda_culturel/models.py:2101 msgid "Type" msgstr "Type" -#: agenda_culturel/filters.py:423 +#: agenda_culturel/filters.py:442 msgid "Search" msgstr "Rechercher" -#: agenda_culturel/filters.py:435 +#: agenda_culturel/filters.py:454 msgid "In the past" msgstr "Dans le passé" diff --git a/src/agenda_culturel/static/style.scss b/src/agenda_culturel/static/style.scss index 641fbfc..04411ea 100644 --- a/src/agenda_culturel/static/style.scss +++ b/src/agenda_culturel/static/style.scss @@ -641,6 +641,12 @@ header .remarque { grid-column: 1/3; } } +.form.recent.moderation-events { + :nth-last-child(4) { + grid-column: 2/3; + } + +} .form.recent.messages { div:nth-child(2) { grid-column: 1/2; diff --git a/src/agenda_culturel/templates/agenda_culturel/recent.html b/src/agenda_culturel/templates/agenda_culturel/recent.html index 5ef791c..8f9f01c 100644 --- a/src/agenda_culturel/templates/agenda_culturel/recent.html +++ b/src/agenda_culturel/templates/agenda_culturel/recent.html @@ -1,7 +1,7 @@ {% extends "agenda_culturel/page-admin.html" %} {% load utils_extra %} -{% block title %}{% block og_title %}Derniers événements soumis{% endblock %}{% endblock %} +{% block title %}{% block og_title %}Derniers événements{% endblock %}{% endblock %} {% load cat_extra %} {% block entete_header %} @@ -22,7 +22,7 @@ Modérer {% picto_from_name "check-square" %} -

Derniers événements soumis

+

Derniers événements

{{ filter.form.as_div }}
diff --git a/src/agenda_culturel/templates/agenda_culturel/side-nav.html b/src/agenda_culturel/templates/agenda_culturel/side-nav.html index 2cba7bf..378cb0f 100644 --- a/src/agenda_culturel/templates/agenda_culturel/side-nav.html +++ b/src/agenda_culturel/templates/agenda_culturel/side-nav.html @@ -16,7 +16,7 @@