diff --git a/src/pretix/presale/forms/renderers.py b/src/pretix/presale/forms/renderers.py new file mode 100644 index 000000000..bd3a1e1af --- /dev/null +++ b/src/pretix/presale/forms/renderers.py @@ -0,0 +1,26 @@ +from bootstrap3.renderers import FieldRenderer +from bootstrap3.utils import add_css_class + + +class CheckoutFieldRenderer(FieldRenderer): + def __init__(self, *args, **kwargs): + kwargs['layout'] = 'horizontal' + super().__init__(*args, **kwargs) + + def get_form_group_class(self): + form_group_class = self.form_group_class + if self.field.errors: + if self.error_css_class: + form_group_class = add_css_class(form_group_class, self.error_css_class) + else: + if self.field.form.is_bound: + form_group_class = add_css_class(form_group_class, self.success_css_class) + required = (getattr(self.field.field, '_show_required', False) or getattr(self.field.field, '_required', False) or self.field.field.required) + if required and self.required_css_class: + form_group_class = add_css_class(form_group_class, self.required_css_class) + if self.layout == 'horizontal': + form_group_class = add_css_class( + form_group_class, + self.get_size_class(prefix='form-group') + ) + return form_group_class diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 8e04ccc96..c308185ad 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -636,6 +636,7 @@ BOOTSTRAP3 = { 'default': 'bootstrap3.renderers.FieldRenderer', 'inline': 'bootstrap3.renderers.InlineFieldRenderer', 'control': 'pretix.control.forms.renderers.ControlFieldRenderer', + 'checkout': 'pretix.presale.forms.renderers.CheckoutFieldRenderer', }, }