diff --git a/src/agenda_culturel/static/style.scss b/src/agenda_culturel/static/style.scss
index 868595d..8302b59 100644
--- a/src/agenda_culturel/static/style.scss
+++ b/src/agenda_culturel/static/style.scss
@@ -590,4 +590,12 @@ nav .badge {
padding: 0.2em .8em;
border-radius: 40%;
+}
+
+form [role="button"] {
+ margin: 0 0 var(--spacing) 0;
+}
+
+.large {
+ margin: 2em auto;
}
\ No newline at end of file
diff --git a/src/agenda_culturel/templates/agenda_culturel/edit-buttons-inc.html b/src/agenda_culturel/templates/agenda_culturel/edit-buttons-inc.html
new file mode 100644
index 0000000..a2d0b5d
--- /dev/null
+++ b/src/agenda_culturel/templates/agenda_culturel/edit-buttons-inc.html
@@ -0,0 +1,19 @@
+
+{% load utils_extra %}
+éditer
+
+{% if event.status != "published" %}
+publier {% picto_from_name "eye" %}
+{% endif %}
+
+{% if event.status != "draft" %}
+brouillon {% picto_from_name "eye-off" %}
+{% endif %}
+
+{% if event.status != "trash" %}
+corbeille {% picto_from_name "trash-2" %}
+{% endif %}
+
+{% if event.status == "trash" %}
+supprimer définitivement {% picto_from_name "x-circle" %}
+{% endif %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/event_confirm_change_status.html b/src/agenda_culturel/templates/agenda_culturel/event_confirm_change_status.html
new file mode 100644
index 0000000..59abb76
--- /dev/null
+++ b/src/agenda_culturel/templates/agenda_culturel/event_confirm_change_status.html
@@ -0,0 +1,43 @@
+{% extends "agenda_culturel/page.html" %}
+
+{% block title %}
+{% if status == "published" %}
+Publier l'événement {{ event.title }}
+{% elif status == "draft" %}
+Déplacer l'événement {{ event.title }} dans les brouillons
+{% elif status == "trash" %}
+Mettre l'événement {{ event.title }} à la corbeille
+{% endif %}
+{% endblock %}
+
+
+{% block content %}
+
+
+ {% if status == "published" %}
+ Publier l'événement {{ event.title }}
+ {% elif status == "draft" %}
+ Déplacer l'événement {{ event.title }} dans les brouillons
+ {% elif status == "trash" %}
+ Mettre l'événement {{ event.title }} à la corbeille
+ {% endif %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-flat-list-inc.html b/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-flat-list-inc.html
index e00de6f..5f50a12 100644
--- a/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-flat-list-inc.html
+++ b/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-flat-list-inc.html
@@ -20,4 +20,10 @@
{% if event.description_hl %}{{ event.description_hl | safe }}{% else %}{% if event.description %}{{ event.description |truncatewords:60 }}{% else %}
pas de description{% endif %}{% endif %}
+
+ {% if user.is_authenticated %}
+
+ {% include "agenda_culturel/edit-buttons-inc.html" with event=event %}
+
+ {% endif %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-list-by-day-inc.html b/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-list-by-day-inc.html
index 03bfe72..c755ae5 100644
--- a/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-list-by-day-inc.html
+++ b/src/agenda_culturel/templates/agenda_culturel/single-event/event-in-list-by-day-inc.html
@@ -65,8 +65,7 @@
{% if user.is_authenticated %}
{% if user.is_authenticated %}
{% if user.is_authenticated %}
{% endif %}
diff --git a/src/agenda_culturel/templatetags/event_extra.py b/src/agenda_culturel/templatetags/event_extra.py
index 375baff..66cb0d9 100644
--- a/src/agenda_culturel/templatetags/event_extra.py
+++ b/src/agenda_culturel/templatetags/event_extra.py
@@ -33,7 +33,7 @@ def picto_status(event):
if event.is_draft():
return picto_from_name("eye-off", "Brouillon")
elif event.is_trash():
- return picto_from_name("trash", "À la poubelle")
+ return picto_from_name("trash-2", "À la corbeille")
else:
return ""
diff --git a/src/agenda_culturel/urls.py b/src/agenda_culturel/urls.py
index 4af3082..d766a7a 100644
--- a/src/agenda_culturel/urls.py
+++ b/src/agenda_culturel/urls.py
@@ -20,6 +20,7 @@ urlpatterns = [
path("events/", event_list, name='view_all_events'),
path("event/-", EventDetailView.as_view(), name="view_event"),
path("event//edit", EventUpdateView.as_view(), name="edit_event"),
+ path("event//change-status/", change_status_event, name="change_status_event"),
path("event//delete", EventDeleteView.as_view(), name="delete_event"),
path("importer", import_from_url, name="event_import_form"),
path("ajouter", EventCreateView.as_view(), name="add_event"),
diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py
index ca1f367..f588b5b 100644
--- a/src/agenda_culturel/views.py
+++ b/src/agenda_culturel/views.py
@@ -235,6 +235,23 @@ class EventDetailView(UserPassesTestMixin, DetailView):
def test_func(self):
return self.request.user.is_authenticated or self.get_object().status != Event.STATUS.PUBLISHED
+@login_required(login_url="/accounts/login/")
+def change_status_event(request, pk, status):
+ event = get_object_or_404(Event, pk=pk)
+
+ if request.method == 'POST':
+ event.status = Event.STATUS(status)
+ event.save(update_fields=["status"])
+
+ if self.request.user.is_authenticated:
+ return event.get_absolute_url()
+ else:
+ return reverse_lazy("home")
+ else:
+ cancel_url = request.META.get('HTTP_REFERER', '')
+ if cancel_url == "":
+ cancel_url = reverse_lazy("home")
+ return render(request, 'agenda_culturel/event_confirm_change_status.html', {"status": status, "event": event, "cancel_url": cancel_url})
def import_from_url(request):