From f95d57cfdea96b7a18276f73690edd8de5ca7530 Mon Sep 17 00:00:00 2001 From: Tom Byers Date: Fri, 7 Aug 2020 10:15:49 +0100 Subject: [PATCH] Add GovukSearchField - extends SearchField --- app/main/forms.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/main/forms.py b/app/main/forms.py index 30fee7b9d..72535b410 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -294,6 +294,23 @@ class GovukEmailField(EmailField): return govuk_field_widget(self, field, type="email", param_extensions=params, **kwargs) +class GovukSearchField(SearchField): + def __init__(self, label='', validators=None, param_extensions=None, **kwargs): + super(GovukSearchField, self).__init__(label, 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 = {"classes": "govuk-!-width-full"} # email addresses don't need to be spellchecked + if param_extensions: + params.update(param_extensions) + return govuk_field_widget(self, field, type="search", param_extensions=params, **kwargs) + + class SMSCode(StringField): validators = [ DataRequired(message='Cannot be empty'),