On peut trier les événements

Fix #312
This commit is contained in:
Jean-Marie Favreau 2025-02-15 21:51:08 +01:00
parent 09773bee71
commit e81880f57a
5 changed files with 58 additions and 14 deletions

View File

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

View File

@ -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 <jeanmarie.favreau@free.fr>\n"
"Language-Team: Jean-Marie Favreau <jeanmarie.favreau@free.fr>\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é"

View File

@ -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;

View File

@ -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 @@
<a href="{% url 'moderate' %}" role="button">Modérer {% picto_from_name "check-square" %}</a>
</div>
<h1>Derniers événements soumis</h1>
<h1>Derniers événements</h1>
<form method="get" class="form django-form recent moderation-events">
{{ filter.form.as_div }}<br />

View File

@ -16,7 +16,7 @@
<nav>
<ul>
{% if perms.agenda_culturel.change_event %}
<li><a {% if current == "recent" %}class="selected" {% endif %}href="{% url 'recent' %}">Derniers événements ajoutés</a>{% show_badges_events "left" %}</li>
<li><a {% if current == "recent" %}class="selected" {% endif %}href="{% url 'recent' %}">Derniers événements</a>{% show_badges_events "left" %}</li>
{% endif %}
{% if perms.agenda_culturel.change_duplicatedevents %}
<li><a {% if current == "duplicates" %}class="selected" {% endif %}href="{% url 'duplicates' %}">Gestion des doublons</a>{% show_badge_duplicated "left" %}</li>