From c41c723b0cb8b048fc3b167a6d47323e6b31cb11 Mon Sep 17 00:00:00 2001 From: Jean-Romain Garnier Date: Fri, 17 Apr 2020 12:25:42 +0200 Subject: [PATCH] Replace ConfirmMailForm with an html template --- users/forms.py | 14 -------- users/templates/users/confirm_email.html | 44 ++++++++++++++++++++++++ users/views.py | 20 ++++++----- 3 files changed, 55 insertions(+), 23 deletions(-) create mode 100644 users/templates/users/confirm_email.html diff --git a/users/forms.py b/users/forms.py index 79302182..f3ea52de 100644 --- a/users/forms.py +++ b/users/forms.py @@ -117,20 +117,6 @@ class PassForm(FormRevMixin, FieldPermissionFormMixin, forms.ModelForm): user.save() -class ConfirmMailForm(FormRevMixin, FieldPermissionFormMixin, forms.ModelForm): - """Formulaire de confirmation de l'email de l'utilisateur""" - class Meta: - model = User - fields = [] - - def save(self, commit=True): - """Confirmation de l'email""" - user = super(ConfirmMailForm, self).save(commit=False) - user.confirm_mail() - user.set_active() - user.save() - - class UserCreationForm(FormRevMixin, forms.ModelForm): """A form for creating new users. Includes all the required fields, plus a repeated password. diff --git a/users/templates/users/confirm_email.html b/users/templates/users/confirm_email.html new file mode 100644 index 00000000..61ae250e --- /dev/null +++ b/users/templates/users/confirm_email.html @@ -0,0 +1,44 @@ +{% extends 'users/sidebar.html' %} +{% comment %} +Re2o est un logiciel d'administration développé initiallement au rezometz. Il +se veut agnostique au réseau considéré, de manière à être installable en +quelques clics. + +Copyright © 2017 Gabriel Détraz +Copyright © 2017 Lara Kermarec +Copyright © 2017 Augustin Lemesle + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +{% endcomment %} + +{% load bootstrap3 %} +{% load i18n %} + +{% block title %}{% trans "Confirmation email" %}{% endblock %} + +{% block content %} + +
+ {% csrf_token %} +

{% blocktrans %}Confirmation email{% endblocktrans %}

+

{% blocktrans %}Confirm the email{% endblocktrans %} {{ email }} {% blocktrans %}for user {{ firstname }} {{ lastname }}.{% endblocktrans %}.

+ {% trans "Confirm" as tr_confirm %} + {% bootstrap_button tr_confirm button_type="submit" icon="ok" button_class="btn-success" %} +
+
+
+
+{% endblock %} + diff --git a/users/views.py b/users/views.py index 4ed046f3..5b8b8e47 100644 --- a/users/views.py +++ b/users/views.py @@ -105,7 +105,6 @@ from .forms import ( ClubForm, MassArchiveForm, PassForm, - ConfirmMailForm, ResetPasswordForm, ClubAdminandMembersForm, GroupForm, @@ -1047,7 +1046,9 @@ def resend_confirmation_email(request, userid): return redirect(reverse("users:profil", kwargs={"userid": userid})) return form( - {"email": user.email}, "users/resend_confirmation_email.html", request + {"email": user.email}, + "users/resend_confirmation_email.html", + request ) @@ -1055,19 +1056,20 @@ def process_email(request, req): """Process la confirmation de mail, renvoie le formulaire de validation""" user = req.user - u_form = ConfirmMailForm(request.POST or None, instance=user, user=request.user) - if u_form.is_valid(): + if request.method == "POST": with transaction.atomic(), reversion.create_revision(): - u_form.save() + user.confirm_mail() + user.save() reversion.set_comment("Email confirmation") + req.delete() - messages.success(request, _("The email was confirmed.")) + messages.success(request, _("The %(email)s address was confirmed." % user.email)) return redirect(reverse("index")) return form( - {"userform": u_form, "action_name": _("Confirm the email")}, - "users/user.html", - request, + {"email": user.email, "firstname": user.firstname, "lastname": user.surname}, + "users/confirm_email.html", + request )