On ajoute des boutons pour continuer la modération quand on modère

Fix #314
This commit is contained in:
Jean-Marie Favreau 2025-03-09 14:02:18 +01:00
parent ea129db89f
commit e0a11631c0
2 changed files with 109 additions and 87 deletions

View File

@ -60,102 +60,115 @@
{% endblock %}
{% block content %}
{% load static_content_extra %}
{% if object %}
<article>
<header>
<h1>
{% if form.is_clone_from_url %}
Création d'une copie locale de
{% else %}
{% if form.is_simple_clone_from_url %}
Duplication de
{% else %}
Édition de l'événement
{% endif %}
{% endif %}
{{ object.title }} ({{ object.start_day }})
</h1>
{% if form.is_simple_clone_from_url %}
<p>
Vous allez créer une copie de l'événement original qui n'aura plus aucun lien avec ce dernier. Cette possibilité
est généralement utilisée pour créer un événement semblable à une date différente, par exemple.
</p>
{% endif %}
</header>
<div class="grid moderate-preview">
<div id="event-preview">
{% include "agenda_culturel/single-event/event-single-inc.html" with event=event nobuttons=1 permalink=1 h=2 %}
{% with event.get_concurrent_events as concurrent_events %}
{% if concurrent_events %}
<article>
<header>
<h2>En même temps</h2>
<p class="remarque">
{% if concurrent_events|length > 1 %}
Plusieurs événements se déroulent en même temps.
{% else %}
Un autre événement se déroule en même temps.
{% endif %}
</p>
</header>
<ul>
{% for e in concurrent_events %}
<li>
{{ e.category|circle_cat }}
{% if e.start_time %}
{{ e.start_time }}
{% else %}
<em>toute la journée</em>
{% endif %}
<a href="{{ e.get_absolute_url }}">{{ e.title }}</a>
</li>
{% endfor %}
</ul>
</article>
{% endif %}
{% endwith %}
<article>{% include "agenda_culturel/event-info-inc.html" %}</article>
</div>
{% endif %}
<article id="event_form">
{% if form.is_clone_from_url or form.is_simple_clone_from_url %}
{% url "add_event_details" as urlparam %}
{% endif %}
<form method="post" action="{{ urlparam }}" enctype="multipart/form-data">
{% if object %}
<article>
<header>
{% if object %}
<h2>Édition des informations</h2>
{% else %}
{% if from_import %}
<h1>Ajuster l'événement importé</h1>
<h1>
{% if form.is_clone_from_url %}
Création d'une copie locale de
{% else %}
<h1>Ajouter un événement</h1>
<p>
Si l'événement est déjà décrit en ligne (par exemple sur Facebook), vous pouvez tenter un <a href="{% url 'add_event_url' %}">import automatique</a>.
</p>
{% if form.is_simple_clone_from_url %}
Duplication de
{% else %}
Édition de l'événement
{% endif %}
{% endif %}
{{ object.title }} ({{ object.start_day }})
</h1>
{% if form.is_simple_clone_from_url %}
<p>
Vous allez créer une copie de l'événement original qui n'aura plus aucun lien avec ce dernier. Cette possibilité
est généralement utilisée pour créer un événement semblable à une date différente, par exemple.
</p>
{% endif %}
</header>
{% if form.is_clone_from_url or form.is_simple_clone_from_url %}
{% url "add_event_details" as urlparam %}
<div class="grid moderate-preview">
<div id="event-preview">
{% include "agenda_culturel/single-event/event-single-inc.html" with event=event nobuttons=1 permalink=1 h=2 %}
{% with event.get_concurrent_events as concurrent_events %}
{% if concurrent_events %}
<article>
<header>
<h2>En même temps</h2>
<p class="remarque">
{% if concurrent_events|length > 1 %}
Plusieurs événements se déroulent en même temps.
{% else %}
Un autre événement se déroule en même temps.
{% endif %}
</p>
</header>
<ul>
{% for e in concurrent_events %}
<li>
{{ e.category|circle_cat }}
{% if e.start_time %}
{{ e.start_time }}
{% else %}
<em>toute la journée</em>
{% endif %}
<a href="{{ e.get_absolute_url }}">{{ e.title }}</a>
</li>
{% endfor %}
</ul>
</article>
{% endif %}
{% endwith %}
<article>{% include "agenda_culturel/event-info-inc.html" %}</article>
</div>
{% endif %}
<form method="post" action="{{ urlparam }}" enctype="multipart/form-data">
<article id="event_form">
<header>
{% if object %}
<h2>Édition des informations</h2>
{% else %}
{% if from_import %}
<h1>Ajuster l'événement importé</h1>
{% else %}
<h1>Ajouter un événement</h1>
<p>
Si l'événement est déjà décrit en ligne (par exemple sur Facebook), vous pouvez tenter un <a href="{% url 'add_event_url' %}">import automatique</a>.
</p>
{% endif %}
{% endif %}
</header>
{% csrf_token %}
{{ form.media }}
{{ form }}
<div class="grid buttons stick-bottom">
<a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{{ object.get_absolute_url }}{% endif %}"
role="button"
class="secondary">Annuler</a>
{% if form.is_simple_clone_from_url %}
<input type="submit" value="Dupliquer et modérer">
{% else %}
<input type="submit"
value="Enregistrer{% if form.is_clone_from_url %} et modérer{% endif %}">
{% endif %}
</div>
</form>
{% if not object %}
<div class="grid buttons stick-bottom">
<a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{{ object.get_absolute_url }}{% endif %}"
role="button"
class="secondary">Annuler</a>
{% if form.is_simple_clone_from_url %}
<input type="submit" value="Dupliquer">
{% else %}
<input type="submit" value="Enregistrer">
{% endif %}
</div>
{% endif %}
</article>
{% if object %}
</div>
<div class="grid buttons">
<a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{{ object.get_absolute_url }}{% endif %}"
role="button"
class="secondary">Annuler</a>
<input type="submit" value="Enregistrer">
<input type="submit"
value="Enregistrer et passer au suivant &gt;"
name="save_and_next">
<a href="{% url 'moderate_event_next' event.pk %}"
class="secondary"
role="button">Passer au suivant sans enregistrer &gt;</a>
</div>
</article>
{% if object %}
</article>
</div>
{% endif %}
{% endif %}
</form>
<script>
const element = document.querySelector('#id_exact_location');
const choices = new Choices(element, {searchResultLimit: 10});

View File

@ -509,6 +509,12 @@ class EventUpdateView(
return result
def get_success_url(self):
if "save_and_next" in self.request.POST:
return reverse_lazy("moderate_event_next", args=[self.object.pk])
else:
return self.object.get_absolute_url()
class EventModerateView(
SuccessMessageMixin,
@ -774,7 +780,10 @@ class EventCreateView(SuccessMessageMixin, CreateView):
def get_success_url(self):
if self.request.user.is_authenticated:
return self.object.get_absolute_url()
if "save_and_next" in self.request.POST:
return reverse_lazy("moderate_event_next", args=[self.object.pk])
else:
return self.object.get_absolute_url()
else:
return reverse_lazy("home")