Files
ihrm/horilla_theme/forms.py

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__