From 10115a0419d4bde6c602c60dc23a7053b0ecb9ea Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Fri, 11 Dec 2020 12:31:00 +0100 Subject: [PATCH] Administrators can update the team of the email validation status of a team. --- apps/registration/forms.py | 6 +++--- apps/registration/tests.py | 4 ++++ apps/registration/views.py | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/apps/registration/forms.py b/apps/registration/forms.py index b533e73..ecb2b9f 100644 --- a/apps/registration/forms.py +++ b/apps/registration/forms.py @@ -64,7 +64,7 @@ class StudentRegistrationForm(forms.ModelForm): """ class Meta: model = StudentRegistration - fields = ('student_class', 'school', 'give_contact_to_animath',) + fields = ('team', 'student_class', 'school', 'give_contact_to_animath', 'email_confirmed',) class PhotoAuthorizationForm(forms.ModelForm): @@ -92,7 +92,7 @@ class CoachRegistrationForm(forms.ModelForm): """ class Meta: model = CoachRegistration - fields = ('professional_activity', 'give_contact_to_animath',) + fields = ('team', 'professional_activity', 'give_contact_to_animath', 'email_confirmed',) class AdminRegistrationForm(forms.ModelForm): @@ -101,4 +101,4 @@ class AdminRegistrationForm(forms.ModelForm): """ class Meta: model = AdminRegistration - fields = ('role', 'give_contact_to_animath',) + fields = ('role', 'give_contact_to_animath', 'email_confirmed',) diff --git a/apps/registration/tests.py b/apps/registration/tests.py index 00cc564..ffcfc3e 100644 --- a/apps/registration/tests.py +++ b/apps/registration/tests.py @@ -226,6 +226,8 @@ class TestRegistration(TestCase): last_name="Name", email="new_" + user.email, give_contact_to_animath=True, + email_confirmed=True, + team_id="", )) self.assertEqual(response.status_code, 200) @@ -234,6 +236,8 @@ class TestRegistration(TestCase): last_name="Name", email="new_" + user.email, give_contact_to_animath=True, + email_confirmed=True, + team_id="", ) response = self.client.post(reverse("registration:update_user", args=(user.pk,)), data=data) self.assertRedirects(response, reverse("registration:user_detail", args=(user.pk,)), 302, 200) diff --git a/apps/registration/views.py b/apps/registration/views.py index cf266a8..5c8368e 100644 --- a/apps/registration/views.py +++ b/apps/registration/views.py @@ -43,6 +43,11 @@ class SignupView(CreateView): context["student_registration_form"] = StudentRegistrationForm(self.request.POST or None) context["coach_registration_form"] = CoachRegistrationForm(self.request.POST or None) + del context["student_registration_form"].fields["team"] + del context["student_registration_form"].fields["email_confirmed"] + del context["coach_registration_form"].fields["team"] + del context["coach_registration_form"].fields["email_confirmed"] + return context @transaction.atomic @@ -52,6 +57,8 @@ class SignupView(CreateView): registration_form = StudentRegistrationForm(self.request.POST) else: registration_form = CoachRegistrationForm(self.request.POST) + del registration_form.fields["team"] + del registration_form.fields["email_confirmed"] if not registration_form.is_valid(): return self.form_invalid(form) @@ -191,6 +198,10 @@ class UserUpdateView(LoginRequiredMixin, UpdateView): context["title"] = _("Update user {user}").format(user=str(self.object.registration)) context["registration_form"] = user.registration.form_class(data=self.request.POST or None, instance=self.object.registration) + if not user.registration.is_admin: + if "team" in context["registration_form"].fields: + del context["registration_form"].fields["team"] + del context["registration_form"].fields["email_confirmed"] return context @transaction.atomic @@ -198,6 +209,11 @@ class UserUpdateView(LoginRequiredMixin, UpdateView): user = form.instance registration_form = user.registration.form_class(data=self.request.POST or None, instance=self.object.registration) + if not user.registration.is_admin: + if "team" in registration_form.fields: + del registration_form.fields["team"] + del registration_form.fields["email_confirmed"] + if not registration_form.is_valid(): return self.form_invalid(form)