- {{ obj.id }} |
+ {{ obj.id }} |
{{ obj.created_date }} |
{% if obj.recurrentImport %}{{ obj.recurrentImport.name }}{% else %}
{% if obj.url_source %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/moderation.html b/src/agenda_culturel/templates/agenda_culturel/moderation.html
index 2c3a23c..85ce84c 100644
--- a/src/agenda_culturel/templates/agenda_culturel/moderation.html
+++ b/src/agenda_culturel/templates/agenda_culturel/moderation.html
@@ -30,6 +30,18 @@
{% endif %}
+
+ {% if daily_modifications %}
+
+
+ Activité des derniers jours
+ {% include "agenda_culturel/recent-activity-inc.html" with modifications=daily_modifications %}
+
+ {% endif %}
+
+ {% include 'agenda_culturel/paginator_filter.html' %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/page-activity.html b/src/agenda_culturel/templates/agenda_culturel/page-activity.html
new file mode 100644
index 0000000..1ef5a23
--- /dev/null
+++ b/src/agenda_culturel/templates/agenda_culturel/page-activity.html
@@ -0,0 +1,39 @@
+{% extends "agenda_culturel/page-admin.html" %}
+
+{% load utils_extra %}
+{% block title %}{% block og_title %}Activité récente{% endblock %}{% endblock %}
+
+{% load cat_extra %}
+{% block entete_header %}
+ {% css_categories %}
+{% endblock %}
+
+{% block sidemenu-bouton %}
+ {% picto_from_name "chevron-up" %}
+ {% picto_from_name "chevron-down" %}
+{% endblock %}
+
+
+{% block content %}
+
+
+
+
+
+ Activité des {{ daily_modifications|length }} derniers jours
+ {% include "agenda_culturel/recent-activity-inc.html" with modifications=daily_modifications %}
+
+
+
+ Activité des semaines précédentes
+ {% include "agenda_culturel/recent-activity-inc.html" with modifications=weekly_modifications %}
+
+
+
+
+{% include "agenda_culturel/side-nav.html" with current="activite" %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/agenda_culturel/templates/agenda_culturel/recent-activity-inc.html b/src/agenda_culturel/templates/agenda_culturel/recent-activity-inc.html
new file mode 100644
index 0000000..41968e9
--- /dev/null
+++ b/src/agenda_culturel/templates/agenda_culturel/recent-activity-inc.html
@@ -0,0 +1,24 @@
+{% if modifications|length == 0 %}
+ Aucune activité dans la période choisie
+{% else %}
+
+
+
+ {% if modifications.0.when.0 == modifications.0.when.1 %}Date{% else %}Semaine{% endif %} |
+ Créations manuelles |
+ Imports manuels |
+ Imports automatiques |
+
+
+
+ {% for m in modifications %}
+
+ {{ m.when.0|date:'D j b' }}{% if modifications.0.when.0 != modifications.0.when.1 %} - {{ m.when.1|date:'D j b' }}{% endif %} |
+ {{ m.nb_manual_creation }} |
+ {{ m.nb_manual_import }} |
+ {{ m.nb_first_import }} |
+
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/src/agenda_culturel/templates/agenda_culturel/side-nav.html b/src/agenda_culturel/templates/agenda_culturel/side-nav.html
index 8e919dc..42e0dc1 100644
--- a/src/agenda_culturel/templates/agenda_culturel/side-nav.html
+++ b/src/agenda_culturel/templates/agenda_culturel/side-nav.html
@@ -15,6 +15,7 @@
{% if perms.agenda_culturel.change_duplicatedevents %}
Gestion des doublons{% show_badge_duplicated "left" %}
{% endif %}
+ Résumé des activités
{% if perms.agenda_culturel.change_place %}
diff --git a/src/agenda_culturel/urls.py b/src/agenda_culturel/urls.py
index 758a773..9a4716d 100644
--- a/src/agenda_culturel/urls.py
+++ b/src/agenda_culturel/urls.py
@@ -24,6 +24,7 @@ urlpatterns = [
path("tag/ /delete", TagDeleteView.as_view(), name="delete_tag"),
path("tags/add", TagCreateView.as_view(), name="add_tag"),
path("moderation/", moderation, name="moderation"),
+ path("activite/", activite, name="activite"),
path(
"event////-",
EventDetailView.as_view(),
diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py
index 16136cd..6e8f1fa 100644
--- a/src/agenda_culturel/views.py
+++ b/src/agenda_culturel/views.py
@@ -991,6 +991,29 @@ class ContactMessagesFilterAdmin(django_filters.FilterSet):
fields = ["closed", "spam"]
+@login_required(login_url="/accounts/login/")
+@permission_required("agenda_culturel.view_event")
+def activite(request):
+ now = date.today()
+
+ days = [now]
+ while len(days) < 7 or days[-1].weekday() != 0:
+ days.append(days[-1] + timedelta(days=-1))
+
+ weeks = [days[-1]]
+ for w in range(0, 8):
+ weeks.append(weeks[-1] + timedelta(days=-7))
+
+ daily_modifications = Event.get_count_modifications([(d, 1) for d in days])
+ weekly_modifications = Event.get_count_modifications([(w, 7) for w in weeks])
+
+ return render(
+ request,
+ "agenda_culturel/page-activity.html",
+ {"daily_modifications": daily_modifications, "weekly_modifications": weekly_modifications },
+ )
+
+
@login_required(login_url="/accounts/login/")
@permission_required("agenda_culturel.view_event")
def moderation(request):
@@ -1000,6 +1023,12 @@ def moderation(request):
paginator = PaginatorFilter(filter, 10, request)
page = request.GET.get("page")
+ daily_modifications = []
+ if not page or page == 1:
+ days = [date.today()]
+ for i in range(0, 2):
+ days.append(days[-1] + timedelta(days=-1))
+ daily_modifications = Event.get_count_modifications([(d, 1) for d in days])
try:
response = paginator.page(page)
except PageNotAnInteger:
@@ -1010,7 +1039,7 @@ def moderation(request):
return render(
request,
"agenda_culturel/moderation.html",
- {"filter": filter, "paginator_filter": response},
+ {"filter": filter, "paginator_filter": response, "daily_modifications": daily_modifications},
)
|