From 7e771a5fa1d40424195bcbd5e632237fdc75d377 Mon Sep 17 00:00:00 2001 From: Tom Byers Date: Fri, 7 Aug 2020 10:07:52 +0100 Subject: [PATCH] Add GovukEmailField - extends EmailField --- app/main/forms.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/main/forms.py b/app/main/forms.py index 4a93e98bb..87fe8485e 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -255,6 +255,23 @@ class GovukPasswordField(PasswordField): return govuk_field_widget(self, field, type="password", param_extensions=param_extensions, **kwargs) +class GovukEmailField(EmailField): + def __init__(self, label='', validators=None, param_extensions=None, **kwargs): + super(GovukEmailField, self).__init__(label, validators=validators, **kwargs) + self.param_extensions = param_extensions + + # self.__call__ renders the HTML for the field by: + # 1. delegating to self.meta.render_field which + # 2. calls field.widget + # this bypasses that by making self.widget a method with the same interface as widget.__call__ + def widget(self, field, param_extensions=None, **kwargs): + + params = {"attributes": {"spellcheck": "false"}} # email addresses don't need to be spellchecked + if param_extensions: + params.update(param_extensions) + return govuk_field_widget(self, field, type="email", param_extensions=params, **kwargs) + + class SMSCode(StringField): validators = [ DataRequired(message='Cannot be empty'),