| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/erp/horilla_widgets/ |
Upload File : |
"""
forms.py
Horilla forms
"""
from typing import Any, Dict
from django import forms
from horilla_widgets.widgets.horilla_multi_select_field import HorillaMultiSelectField
orginal_template_name = forms.Select.option_template_name
forms.Select.option_template_name = "horilla_widgets/horilla_select_option.html"
class HorillaForm(forms.Form):
def clean(self) -> Dict[str, Any]:
for field_name, field_instance in self.fields.items():
if isinstance(field_instance, HorillaMultiSelectField):
self.errors.pop(field_name, None)
if len(self.data.getlist(field_name)) < 1:
raise forms.ValidationError({field_name: "This field is required"})
cleaned_data = super().clean()
employee_data = self.fields[field_name].queryset.filter(
id__in=self.data.getlist(field_name)
)
cleaned_data[field_name] = employee_data
cleaned_data = super().clean()
return cleaned_data
class HorillaModelForm(forms.ModelForm):
def clean(self) -> Dict[str, Any]:
for field_name, field_instance in self.fields.items():
if isinstance(field_instance, HorillaMultiSelectField):
self.errors.pop(field_name, None)
if len(self.data.getlist(field_name)) < 1:
raise forms.ValidationError({field_name: "Thif field is required"})
cleaned_data = super().clean()
employee_data = self.fields[field_name].queryset.filter(
id__in=self.data.getlist(field_name)
)
cleaned_data[field_name] = employee_data
cleaned_data = super().clean()
return cleaned_data