@@ -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])
 | 
			
		||||
 
 | 
			
		||||
@@ -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é"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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 />
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user