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 %} {% endblock %}
{% block content %} {% block content %}
{% load static_content_extra %} {% load static_content_extra %}
{% if object %} {% if form.is_clone_from_url or form.is_simple_clone_from_url %}
<article> {% url "add_event_details" as urlparam %}
<header> {% endif %}
<h1> <form method="post" action="{{ urlparam }}" enctype="multipart/form-data">
{% if form.is_clone_from_url %} {% if object %}
Création d'une copie locale de <article>
{% 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">
<header> <header>
{% if object %} <h1>
<h2>Édition des informations</h2> {% if form.is_clone_from_url %}
{% else %} Création d'une copie locale de
{% if from_import %}
<h1>Ajuster l'événement importé</h1>
{% else %} {% else %}
<h1>Ajouter un événement</h1> {% if form.is_simple_clone_from_url %}
<p> Duplication de
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>. {% else %}
</p> Édition de l'événement
{% endif %}
{% 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 %} {% endif %}
</header> </header>
{% if form.is_clone_from_url or form.is_simple_clone_from_url %} <div class="grid moderate-preview">
{% url "add_event_details" as urlparam %} <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 %} {% 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 %} {% csrf_token %}
{{ form.media }} {{ form.media }}
{{ form }} {{ form }}
<div class="grid buttons stick-bottom"> {% if not object %}
<a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{{ object.get_absolute_url }}{% endif %}" <div class="grid buttons stick-bottom">
role="button" <a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{{ object.get_absolute_url }}{% endif %}"
class="secondary">Annuler</a> role="button"
{% if form.is_simple_clone_from_url %} class="secondary">Annuler</a>
<input type="submit" value="Dupliquer et modérer"> {% if form.is_simple_clone_from_url %}
{% else %} <input type="submit" value="Dupliquer">
<input type="submit" {% else %}
value="Enregistrer{% if form.is_clone_from_url %} et modérer{% endif %}"> <input type="submit" value="Enregistrer">
{% endif %} {% endif %}
</div> </div>
</form> {% 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> </article>
{% if object %} {% endif %}
</article> </form>
</div>
{% endif %}
<script> <script>
const element = document.querySelector('#id_exact_location'); const element = document.querySelector('#id_exact_location');
const choices = new Choices(element, {searchResultLimit: 10}); const choices = new Choices(element, {searchResultLimit: 10});

View File

@ -509,6 +509,12 @@ class EventUpdateView(
return result 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( class EventModerateView(
SuccessMessageMixin, SuccessMessageMixin,
@ -774,7 +780,10 @@ class EventCreateView(SuccessMessageMixin, CreateView):
def get_success_url(self): def get_success_url(self):
if self.request.user.is_authenticated: 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: else:
return reverse_lazy("home") return reverse_lazy("home")