From 027c389a55686b8e15ba41688f4fc396a611988a Mon Sep 17 00:00:00 2001 From: Dorian Lesbre <dorian.lesbre@gmail.com> Date: Sat, 20 Mar 2021 18:46:58 +0100 Subject: [PATCH] Email counts + code cleanup --- home/templates/admin.html | 23 +++++++++++++++-------- home/views.py | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/home/templates/admin.html b/home/templates/admin.html index 14d70ba..c7337fd 100644 --- a/home/templates/admin.html +++ b/home/templates/admin.html @@ -113,24 +113,31 @@ <p>La répartition se fait depuis la <a href="{% url 'admin:index' %}">page d'administration de django</a>, dans la rebrique "Choix d'activités" via la colonne "obtenue".</p> + <p>Une fois la répartition effectuée, vérifiez qu'elle passe les tests avant d'envoyer les mails</p> + {{ validations|safe }} <script type="text/javascript"> + {% if validation_errors %} + const errors = "!! Cette répartition ne passe PAS tous les tests !!\n\n"; + {% else %} + const errors = ""; + {% endif %} {% if not settings.user_notified %} function mail_inscrits() { if (confirm( - `Cette action va envoyer 20 emails.\nÊtes-vous sur de vouloir continuer ?` + `${errors}Cette action va envoyer {{ user_email_nb }} emails.\nÊtes-vous sur de vouloir continuer ?` )) window.location = "{% url 'home' %}"; } {% endif %} {% if not settings.orga_notified %} - function mail_orgas() { - if (confirm( - `Cette action va envoyer 10 emails.\nÊtes-vous sur de vouloir continuer ?` - )) - window.location = "{% url 'home' %}"; - } + function mail_orgas() { + if (confirm( + `${errors}Cette action va envoyer {{ orga_email_nb }} emails.\nÊtes-vous sur de vouloir continuer ?` + )) + window.location = "{% url 'home' %}"; + } {% endif %} </script> <p class="centered"><i class="fas fa-exclamation-triangle"></i> N'ENVOYER LES EMAILS QUE SI VOUS ÊTES SUR DE VOUS ! <i class="fas fa-exclamation-triangle"></i></p> @@ -155,7 +162,7 @@ {% if settings.orga_notified %} <button class="button disabled">Email aux orgas</button> {% else %} - <button class="button" onclick="mail_orgas();">Email aux orgass</button> + <button class="button" onclick="mail_orgas();">Email aux orgas</button> {% endif %} </div> {% endblock %} \ No newline at end of file diff --git a/home/views.py b/home/views.py index 2389090..da0c131 100644 --- a/home/views.py +++ b/home/views.py @@ -248,12 +248,25 @@ class AdminView(SuperuserRequiredMixin, TemplateView): validations += self.validate_activity_participant_nb() validations += self.validate_activity_conflicts() validations += '</ul>' - return validations + + user_email_nb = ActivityList.objects.filter( + participant__is_registered=True + ).values("participant").distinct().count() + orga_email_nb = InterludesActivity.objects.filter( + display=True, must_subscribe=True, communicate_participants=True + ).count() + + return { + "validations": validations, + "user_email_nb": user_email_nb, + "orga_email_nb": orga_email_nb, + "validation_errors": '<li class="error">' in validations + } def get_context_data(self, *args, **kwargs): context = super().get_context_data(*args, **kwargs) context["metrics"] = self.get_metrics() - context["validations"] = self.validate_activity_allocation() + context.update(self.validate_activity_allocation()) return context -- GitLab