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__
