Ajout de boutons pour modérer le jour souhaité

This commit is contained in:
Jean-Marie Favreau 2024-12-13 12:28:40 +01:00
parent 6589c1b0c3
commit 5e8d9766ee
4 changed files with 58 additions and 17 deletions

View File

@ -1606,9 +1606,6 @@ label.required::after {
}
.moderation_heatmap {
border-spacing: 0.1em;
border-collapse: separate;
max-width: 600px;
margin: auto;
th {
@ -1623,29 +1620,59 @@ label.required::after {
text-align: right;
}
.ratio {
border-radius: var(--border-radius);
padding: 0.2em;
color: black;
padding: 0.1em;
a, .a {
margin: auto;
border-radius: var(--border-radius);
color: black;
padding: .5em 1em;
display: block;
width: 6em;
height: 2.5em;
}
}
.score_0 {
background: rgb(0, 128, 0);
a, .a {
background: rgb(0, 128, 0);
}
}
.score_1 {
background: rgb(255, 255, 0);
a, .a {
background: rgb(255, 255, 0);
}
}
.score_2 {
background: rgb(255, 166, 0);
a, .a {
background: rgb(255, 166, 0);
}
}
.score_3 {
background: rgb(255, 0, 0);
a, .a {
background: rgb(255, 0, 0);
}
}
.score_4 {
background: rgb(128, 0, 128);
color: white;
a, .a {
background: rgb(128, 0, 128);
color: white;
}
}
@media only screen and (max-width: 300px) {
.ratio, .month, .label {
@media only screen and (max-width: 500px) {
.total, .month {
font-size: 0;
}
.label {
display: none;
}
font-size: 90%;
}
@media only screen and (max-width: 400px) {
font-size: 80%;
.ratio a, .ratio .a {
padding: 0.1em;
width: 4em;
height: 2em;
}
}
}

View File

@ -29,16 +29,19 @@
{% for w in nb_not_moderated %}
<table class="moderation_heatmap">
<thead>
<th></th>
<th class="label"></th>
{% for m in w %}
<th>{{ m.start_day|date:"d" }}<span class="month"> {{ m.start_day|date:"M"|lower }}</span></th>
<th><a href="{% url 'day_view' m.start_day.year m.start_day.month m.start_day.day %}">{{ m.start_day|date:"d" }}<span class="month"> {{ m.start_day|date:"M"|lower }}</span></a></th>
{% endfor %}
</thead>
<tbody>
<tr>
<th class="label">reste à modérer</h>
{% for m in w %}
<td class="ratio score_{{ m.note }}">{{ m.not_moderated }} / {{ m.nb_events }}</td>
<td class="ratio score_{{ m.note }}">
<{% if m.not_moderated > 0 %}a href="{% url 'moderate_from_date' m.start_day.year m.start_day.month m.start_day.day %}"{% else %}span class="a"{% endif %}>
{{ m.not_moderated }}<span class="total"> / {{ m.nb_events }}</span></{% if m.not_moderated > 0 %}a{% else %}span{% endif %}>
</td>
{% endfor %}
</tr>
</tbody>

View File

@ -60,6 +60,7 @@ urlpatterns = [
path("event/<int:pk>/moderate/after/<int:pred>", EventModerateView.as_view(), name="moderate_event_step"),
path("event/<int:pk>/moderate-next", moderate_event_next, name="moderate_event_next"),
path("moderate", EventModerateView.as_view(), name="moderate"),
path("moderate/<int:y>/<int:m>/<int:d>", moderate_from_date, name="moderate_from_date"),
path("event/<int:pk>/simple-clone/edit", EventUpdateView.as_view(), name="simple_clone_edit"),
path("event/<int:pk>/clone/edit", EventUpdateView.as_view(), name="clone_edit"),
path("event/<int:pk>/message", MessageCreateView.as_view(), name="message_for_event"),

View File

@ -370,6 +370,9 @@ class EventModerateView(
def is_starting_moderation(self):
return not "pk" in self.kwargs
def is_moderation_from_date(self):
return "m" in self.kwargs and "y" in self.kwargs and "d" in self.kwargs
def get_next_event(start_day, start_time):
# select non moderated events
@ -460,6 +463,13 @@ def moderate_event_next(request, pk):
else:
return HttpResponseRedirect(reverse_lazy("moderate_event_step", args=[next_obj.pk, obj.pk]))
@login_required(login_url="/accounts/login/")
@permission_required("agenda_culturel.change_event")
def moderate_from_date(request, y, m, d):
d = date(y, m, d)
obj = EventModerateView.get_next_event(d, None)
return HttpResponseRedirect(reverse_lazy("moderate_event", args=[obj.pk]))
class EventDeleteView(
SuccessMessageMixin, PermissionRequiredMixin, LoginRequiredMixin, DeleteView