Skip to content

Commit 03b4ba8

Browse files
committed
Fixed issue where checkboxes wouldn't display side by side if checked
1 parent fc0ebb2 commit 03b4ba8

4 files changed

Lines changed: 26 additions & 10 deletions

File tree

wagtail_advanced_form_builder/forms/advanced_form_builder.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
from wagtail_advanced_form_builder.forms.widgets.checkbox_input_widget import CheckboxInput
55
from wagtail_advanced_form_builder.forms.widgets.html_output_widget import HTMLOutputWidget
6+
from wagtail_advanced_form_builder.forms.widgets.side_by_side_checkbox_select_multiple_widget import \
7+
SideBySideCheckboxSelectWidget
68
from wagtail_advanced_form_builder.forms.widgets.side_by_side_radio_select_widget import SideBySideRadioSelectWidget
79

810

@@ -50,9 +52,15 @@ def create_checkboxes_field(self, field, options):
5052
lambda x: (x.strip(), x.strip()),
5153
field.default_value
5254
))
53-
return forms.MultipleChoiceField(
54-
widget=forms.CheckboxSelectMultiple, **options
55-
)
55+
print("HERE", field.display_side_by_side)
56+
if field.display_side_by_side:
57+
return forms.MultipleChoiceField(
58+
widget=SideBySideCheckboxSelectWidget, **options
59+
)
60+
else:
61+
return forms.MultipleChoiceField(
62+
widget=forms.CheckboxSelectMultiple, **options
63+
)
5664

5765
def create_checkbox_field(self, field, options):
5866
options['widget'] = CheckboxInput(
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.forms import CheckboxSelectMultiple
2+
3+
4+
class SideBySideCheckboxSelectWidget(CheckboxSelectMultiple):
5+
6+
def __init__(self, *args, **kwargs):
7+
super().__init__(*args, **kwargs)
8+
self.display_side_by_side = True

wagtail_advanced_form_builder/templates/wagtail_advanced_form_builder/fields/multi_checkbox_field.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
{% include "wagtail_advanced_form_builder/field_helpers/field_label.html" %}
77
{% include "wagtail_advanced_form_builder/field_helpers/field_help_text.html" %}
88
<ul class="waf--radio-list">
9-
{% for checkbox in field %}
10-
<li class="">
11-
{{ checkbox.tag }}
12-
<label for="{{ checkbox.id_for_label }}" class="waf--field-label-choice">{{ checkbox.choice_label }}</label>
13-
</li>
14-
{% endfor %}
9+
{% for checkbox in field %}
10+
<li class="{% if field.field.widget.display_side_by_side %}waf--choice-inline{% endif %}">
11+
{{ checkbox.tag }}
12+
<label for="{{ checkbox.id_for_label }}" class="waf--field-label-choice">{{ checkbox.choice_label }}</label>
13+
</li>
14+
{% endfor %}
1515
</ul>
1616
</div>
1717
{% include "wagtail_advanced_form_builder/field_helpers/field_error.html" %}

wagtail_advanced_form_builder/templates/wagtail_advanced_form_builder/tags/form_field.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
{% include "wagtail_advanced_form_builder/fields/checkbox_field.html" with field=field %}
1616
{% elif field|fieldtype == 'RadioSelect' or field|fieldtype == 'SideBySideRadioSelectWidget' %}
1717
{% include "wagtail_advanced_form_builder/fields/radio_buttons_field.html" with field=field %}
18-
{% elif field|fieldtype == 'CheckboxSelectMultiple' %}
18+
{% elif field|fieldtype == 'CheckboxSelectMultiple' or field|fieldtype == 'SideBySideCheckboxSelectWidget' %}
1919
{% include "wagtail_advanced_form_builder/fields/multi_checkbox_field.html" with field=field %}
2020
{% elif field|fieldtype == 'Textarea' %}
2121
{% include "wagtail_advanced_form_builder/fields/text_area_field.html" with field=field %}

0 commit comments

Comments
 (0)