diff --git a/apps/participation/templates/participation/mails/request_validation.html b/apps/participation/templates/participation/mails/request_validation.html new file mode 100644 index 0000000..9693d0a --- /dev/null +++ b/apps/participation/templates/participation/mails/request_validation.html @@ -0,0 +1,27 @@ + + + + + Demande de validation - Correspondances des Jeunes Mathématicien·ne·s + + +

+Bonjour {{ user.registration }}, +

+ +

+L'équipe « {{ team.name }} » ({{ team.trigram }}) vient de demander à valider son équipe pour participer +au {{ team.participation.get_problem_display }} des Correspondances des Jeunes Mathématicien·ne·s. +Vous pouvez décider d'accepter ou de refuser l'équipe en vous rendant sur la page de l'équipe : +{% url "participation:team_detail" pk=team.pk %} +

+ +

+Cordialement, +

+ +

+L'organisation des Correspondances des Jeunes Mathématicien·ne·s +

+ + diff --git a/apps/participation/templates/participation/mails/request_validation.txt b/apps/participation/templates/participation/mails/request_validation.txt new file mode 100644 index 0000000..6bd4f3e --- /dev/null +++ b/apps/participation/templates/participation/mails/request_validation.txt @@ -0,0 +1,10 @@ +Bonjour {{ user.registration }}, + +L'équipe « {{ team.name }} » ({{ team.trigram }}) vient de demander à valider son équipe pour participer +au {{ team.participation.get_problem_display }} des Correspondances des Jeunes Mathématicien·ne·s. +Vous pouvez décider d'accepter ou de refuser l'équipe en vous rendant sur la page de l'équipe : +{% url "participation:team_detail" pk=team.pk %} + +Cordialement, + +L'organisation des Correspondances des Jeunes Mathématicien·ne·s diff --git a/apps/participation/views.py b/apps/participation/views.py index 3ded405..b708eff 100644 --- a/apps/participation/views.py +++ b/apps/participation/views.py @@ -6,11 +6,13 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.core.exceptions import PermissionDenied from django.db import transaction from django.http import HttpResponse +from django.shortcuts import redirect +from django.template.loader import render_to_string from django.urls import reverse_lazy from django.utils.translation import gettext_lazy as _ from django.views.generic import CreateView, DetailView, FormView, RedirectView, UpdateView -from django.shortcuts import redirect from magic import Magic +from registration.models import AdminRegistration from .forms import JoinTeamForm, ParticipationForm, TeamForm, UploadVideoForm from .models import Participation, Team, Video @@ -101,8 +103,13 @@ class TeamDetailView(LoginRequiredMixin, DetailView): if request.user.registration.participates: if "request-validation" in request.POST: request.user.registration.team.participation.valid = False - # TODO Send mail to admins request.user.registration.team.participation.save() + + for admin in AdminRegistration.objects.all(): + mail_context = dict(user=admin.user, team=request.user.registration.team) + mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context) + mail_html = render_to_string("participation/mails/request_validation.html", mail_context) + admin.user.email_user("[Corres2math] Validation d'équipe", mail_plain, html_message=mail_html) return redirect(request.path) def get_context_data(self, **kwargs):