From 4f9e5e3678d218e73ff48229ed5beb80387c34a7 Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Mon, 6 Aug 2018 12:28:51 +0100 Subject: [PATCH] Disable email field and add context to the message --- opentech/apply/users/forms.py | 6 +++++- opentech/apply/users/tests/test_forms.py | 5 ++--- opentech/apply/users/tests/test_views.py | 4 ---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/opentech/apply/users/forms.py b/opentech/apply/users/forms.py index b27eab0b8..8338010a6 100644 --- a/opentech/apply/users/forms.py +++ b/opentech/apply/users/forms.py @@ -1,5 +1,6 @@ from django import forms from django.contrib.auth import get_user_model +from django.utils.translation import gettext_lazy as _ from wagtail.users.forms import UserEditForm, UserCreationForm @@ -36,7 +37,10 @@ class ProfileForm(forms.ModelForm): if not self.instance.has_usable_password(): # User is registered with oauth - no password change allowed - del self.fields['email'] + email_field = self.fields['email'] + email_field.disabled = True + email_field.required = False + email_field.help_text = _('You are registered using OAuth, please contact an admin if you need to change your email address.') def clean_slack(self): slack = self.cleaned_data['slack'] diff --git a/opentech/apply/users/tests/test_forms.py b/opentech/apply/users/tests/test_forms.py index 06e81fb93..edb991775 100644 --- a/opentech/apply/users/tests/test_forms.py +++ b/opentech/apply/users/tests/test_forms.py @@ -48,10 +48,9 @@ class TestStaffProfileForm(BaseTestProfileForm): def setUp(self): self.staff = StaffFactory() - def test_cant_change_password(self): + def test_cant_change_email(self): new_email = 'me@this.com' - form = self.submit_form(self.staff, email=new_email) - self.assertFalse('email' in form.fields) + self.submit_form(self.staff, email=new_email) self.staff.refresh_from_db() self.assertNotEqual(new_email, self.staff.email) diff --git a/opentech/apply/users/tests/test_views.py b/opentech/apply/users/tests/test_views.py index 1943e5083..935dcdc98 100644 --- a/opentech/apply/users/tests/test_views.py +++ b/opentech/apply/users/tests/test_views.py @@ -43,7 +43,3 @@ class TestStaffProfileView(BaseTestProfielView): def test_can_set_slack_name(self): response = self.client.get(self.url, follow=True) self.assertContains(response, 'Slack name') - - def test_can_not_set_email(self): - response = self.client.get(self.url, follow=True) - self.assertNotContains(response, 'Email') -- GitLab