44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from django import forms
|
|
|
|
from accessibility.filters import (
|
|
AccessibilityFilter,
|
|
HorillaFilterSet,
|
|
_filter_form_structured,
|
|
)
|
|
|
|
|
|
def __new_init__(self, *args, **kwargs):
|
|
AccessibilityFilter.__bases__[0].__init__(self, *args, **kwargs)
|
|
for field_name, field in self.form.fields.items():
|
|
filter_widget = self.filters[field_name]
|
|
widget = filter_widget.field.widget
|
|
if isinstance(widget, (forms.NumberInput, forms.EmailInput, forms.TextInput)):
|
|
field.widget.attrs.update({"class": "oh-input w-100"})
|
|
elif isinstance(widget, (forms.Select,)):
|
|
field.widget.attrs.update(
|
|
{
|
|
"class": "",
|
|
"id": "",
|
|
}
|
|
)
|
|
elif isinstance(widget, (forms.Textarea)):
|
|
field.widget.attrs.update({"class": "oh-input w-100"})
|
|
elif isinstance(
|
|
widget,
|
|
(
|
|
forms.CheckboxInput,
|
|
forms.CheckboxSelectMultiple,
|
|
),
|
|
):
|
|
field.widget.attrs.update({"class": "oh-switch__checkbox"})
|
|
elif isinstance(widget, (forms.ModelChoiceField)):
|
|
field.widget.attrs.update(
|
|
{
|
|
"class": "oh-select oh-select-2 select2-hidden-accessible",
|
|
}
|
|
)
|
|
self.form.structured = _filter_form_structured(self.form)
|
|
|
|
|
|
AccessibilityFilter.__init__ = __new_init__
|