Split common checkbox methods off into mixin

This commit is contained in:
Tom Byers
2020-05-07 15:44:13 +01:00
parent 38cc90a24b
commit 2092a04547

View File

@@ -542,11 +542,7 @@ BroadcastPermissionsAbstract = type("BroadcastPermissionsAbstract", (StripWhites
})
class govukCheckboxField(BooleanField):
def __init__(self, label='', validators=None, param_extensions=None, **kwargs):
super(govukCheckboxField, self).__init__(label, validators, false_values=None, **kwargs)
self.param_extensions = param_extensions
class govukCheckboxesMixin:
def extend_params(self, params, extensions):
items = None
@@ -571,6 +567,13 @@ class govukCheckboxField(BooleanField):
else:
params['items'][idx].update(items[idx])
class govukCheckboxField(govukCheckboxesMixin, BooleanField):
def __init__(self, label='', validators=None, param_extensions=None, **kwargs):
super(govukCheckboxField, self).__init__(label, validators, false_values=None, **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
@@ -610,7 +613,7 @@ class govukCheckboxField(BooleanField):
# based on work done by @richardjpope: https://github.com/richardjpope/recourse/blob/master/recourse/forms.py#L6
class govukCheckboxesField(SelectMultipleField):
class govukCheckboxesField(govukCheckboxesMixin, SelectMultipleField):
render_as_list = False