import django_filters from .models import AcademicYear, Department, DepartmentHead, Specialty, Group, Student class AcademicYearFilter(django_filters.FilterSet): year = django_filters.CharFilter(lookup_expr="icontains") class Meta: model = AcademicYear fields = ["year"] class DepartmentFilter(django_filters.FilterSet): name = django_filters.CharFilter(lookup_expr="icontains") class Meta: model = Department fields = ["name"] class DepartmentHeadFilter(django_filters.FilterSet): department_name = django_filters.CharFilter(field_name="department__name", lookup_expr="icontains") head_name = django_filters.CharFilter(field_name="head__first_name", lookup_expr="icontains") class Meta: model = DepartmentHead fields = ["department_name", "head_name"] class SpecialtyFilter(django_filters.FilterSet): name = django_filters.CharFilter(lookup_expr="icontains") code = django_filters.CharFilter(lookup_expr="icontains") department_name = django_filters.CharFilter(field_name="department__name", lookup_expr="icontains") class Meta: model = Specialty fields = ["name", "code", "department_name"] class GroupFilter(django_filters.FilterSet): name = django_filters.CharFilter(lookup_expr="icontains") curator_name = django_filters.CharFilter(field_name="curator__first_name", lookup_expr="icontains") specialty_name = django_filters.CharFilter(field_name="specialty__name", lookup_expr="icontains") class Meta: model = Group fields = ["name", "curator_name", "specialty_name"] class StudentFilter(django_filters.FilterSet): first_name = django_filters.CharFilter(field_name="account__first_name", lookup_expr="icontains") last_name = django_filters.CharFilter(field_name="account__last_name", lookup_expr="icontains") group_name = django_filters.CharFilter(field_name="group__name", lookup_expr="icontains") specialty_name = django_filters.CharFilter(field_name="group__specialty__name", lookup_expr="icontains") class Meta: model = Student fields = ["first_name", "last_name", "group_name", "specialty_name"]