Files
ProFi/education/filters.py

58 lines
2.1 KiB
Python
Raw Permalink Normal View History

2025-05-19 12:54:50 +03:00
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"]