@@ -338,12 +338,30 @@ class EventFilterAdmin(django_filters.FilterSet):
 | 
				
			|||||||
        method="filter_by_in_recurrent_import",
 | 
					        method="filter_by_in_recurrent_import",
 | 
				
			||||||
        widget=forms.CheckboxSelectMultiple)
 | 
					        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(
 | 
					    import_sources = django_filters.ModelChoiceFilter(
 | 
				
			||||||
        label=_("Imported from"),
 | 
					        label=_("Imported from"),
 | 
				
			||||||
        method="filter_by_source",
 | 
					        method="filter_by_source",
 | 
				
			||||||
        queryset=RecurrentImport.objects.all().order_by("name__unaccent")
 | 
					        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):
 | 
					    def filter_by_source(self, queryset, name, value):
 | 
				
			||||||
        src = RecurrentImport.objects.get(pk=value.pk).source
 | 
					        src = RecurrentImport.objects.get(pk=value.pk).source
 | 
				
			||||||
        return queryset.filter(import_sources__contains=[src])
 | 
					        return queryset.filter(import_sources__contains=[src])
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@ msgid ""
 | 
				
			|||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: agenda_culturel\n"
 | 
					"Project-Id-Version: agenda_culturel\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: \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"
 | 
					"PO-Revision-Date: 2023-10-29 14:16+0000\n"
 | 
				
			||||||
"Last-Translator: Jean-Marie Favreau <jeanmarie.favreau@free.fr>\n"
 | 
					"Last-Translator: Jean-Marie Favreau <jeanmarie.favreau@free.fr>\n"
 | 
				
			||||||
"Language-Team: 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"
 | 
					msgstr "Version représentative"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: agenda_culturel/filters.py:325 agenda_culturel/filters.py:331
 | 
					#: 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"
 | 
					msgid "Yes"
 | 
				
			||||||
msgstr "Oui"
 | 
					msgstr "Oui"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: agenda_culturel/filters.py:325 agenda_culturel/filters.py:331
 | 
					#: 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"
 | 
					msgid "No"
 | 
				
			||||||
msgstr "Non"
 | 
					msgstr "Non"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -120,37 +120,57 @@ msgstr "Inclut dans un import récurrent"
 | 
				
			|||||||
msgid "Imported from"
 | 
					msgid "Imported from"
 | 
				
			||||||
msgstr "Importé depuis"
 | 
					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
 | 
					#: agenda_culturel/models.py:2302
 | 
				
			||||||
msgid "Status"
 | 
					msgid "Status"
 | 
				
			||||||
msgstr "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"
 | 
					msgid "Closed"
 | 
				
			||||||
msgstr "Fermé"
 | 
					msgstr "Fermé"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: agenda_culturel/filters.py:398
 | 
					#: agenda_culturel/filters.py:417
 | 
				
			||||||
msgid "Open"
 | 
					msgid "Open"
 | 
				
			||||||
msgstr "Ouvert"
 | 
					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
 | 
					#: agenda_culturel/models.py:2080
 | 
				
			||||||
msgid "Spam"
 | 
					msgid "Spam"
 | 
				
			||||||
msgstr "Spam"
 | 
					msgstr "Spam"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: agenda_culturel/filters.py:403
 | 
					#: agenda_culturel/filters.py:422
 | 
				
			||||||
msgid "Non spam"
 | 
					msgid "Non spam"
 | 
				
			||||||
msgstr "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"
 | 
					msgid "Type"
 | 
				
			||||||
msgstr "Type"
 | 
					msgstr "Type"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: agenda_culturel/filters.py:423
 | 
					#: agenda_culturel/filters.py:442
 | 
				
			||||||
msgid "Search"
 | 
					msgid "Search"
 | 
				
			||||||
msgstr "Rechercher"
 | 
					msgstr "Rechercher"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: agenda_culturel/filters.py:435
 | 
					#: agenda_culturel/filters.py:454
 | 
				
			||||||
msgid "In the past"
 | 
					msgid "In the past"
 | 
				
			||||||
msgstr "Dans le passé"
 | 
					msgstr "Dans le passé"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -641,6 +641,12 @@ header .remarque {
 | 
				
			|||||||
        grid-column: 1/3;
 | 
					        grid-column: 1/3;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					.form.recent.moderation-events {
 | 
				
			||||||
 | 
					    :nth-last-child(4) {
 | 
				
			||||||
 | 
					        grid-column: 2/3;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
.form.recent.messages {
 | 
					.form.recent.messages {
 | 
				
			||||||
    div:nth-child(2) {
 | 
					    div:nth-child(2) {
 | 
				
			||||||
        grid-column: 1/2;
 | 
					        grid-column: 1/2;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
{% extends "agenda_culturel/page-admin.html" %}
 | 
					{% extends "agenda_culturel/page-admin.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% load utils_extra %}
 | 
					{% 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 %}
 | 
					{% load cat_extra %}
 | 
				
			||||||
{% block entete_header %}
 | 
					{% block entete_header %}
 | 
				
			||||||
@@ -22,7 +22,7 @@
 | 
				
			|||||||
            <a href="{% url 'moderate' %}" role="button">Modérer {% picto_from_name "check-square" %}</a>
 | 
					            <a href="{% url 'moderate' %}" role="button">Modérer {% picto_from_name "check-square" %}</a>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <h1>Derniers événements soumis</h1>
 | 
					        <h1>Derniers événements</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <form method="get" class="form django-form recent moderation-events">
 | 
					        <form method="get" class="form django-form recent moderation-events">
 | 
				
			||||||
                        {{ filter.form.as_div }}<br />
 | 
					                        {{ filter.form.as_div }}<br />
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@
 | 
				
			|||||||
        <nav>
 | 
					        <nav>
 | 
				
			||||||
            <ul>
 | 
					            <ul>
 | 
				
			||||||
                {% if perms.agenda_culturel.change_event %}
 | 
					                {% 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 %}
 | 
					                {% endif %}
 | 
				
			||||||
                {% if perms.agenda_culturel.change_duplicatedevents %}
 | 
					                {% 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>
 | 
					                <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