Files
ProFi/education/views.py
2025-05-19 12:54:50 +03:00

73 lines
2.6 KiB
Python

from rest_framework import viewsets
from rest_framework.filters import SearchFilter, OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
from .models import AcademicYear, Department, DepartmentHead, Specialty, Group, Student
from .serializers import (
AcademicYearSerializer,
DepartmentSerializer,
DepartmentHeadSerializer,
SpecialtySerializer,
GroupSerializer,
StudentSerializer,
)
from .filters import (
AcademicYearFilter,
DepartmentFilter,
DepartmentHeadFilter,
SpecialtyFilter,
GroupFilter,
StudentFilter,
)
class AcademicYearViewSet(viewsets.ModelViewSet):
queryset = AcademicYear.objects.all()
serializer_class = AcademicYearSerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = AcademicYearFilter
search_fields = ["year"]
ordering_fields = ["year"]
class DepartmentViewSet(viewsets.ModelViewSet):
queryset = Department.objects.all()
serializer_class = DepartmentSerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = DepartmentFilter
search_fields = ["name"]
ordering_fields = ["name"]
class DepartmentHeadViewSet(viewsets.ModelViewSet):
queryset = DepartmentHead.objects.all()
serializer_class = DepartmentHeadSerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = DepartmentHeadFilter
search_fields = ["department__name", "head__first_name"]
ordering_fields = ["department", "head"]
class SpecialtyViewSet(viewsets.ModelViewSet):
queryset = Specialty.objects.all()
serializer_class = SpecialtySerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = SpecialtyFilter
search_fields = ["name", "code", "department__name"]
ordering_fields = ["name", "code"]
class GroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = GroupFilter
search_fields = ["name", "curator__first_name", "specialty__name"]
ordering_fields = ["name", "specialty"]
class StudentViewSet(viewsets.ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentSerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = StudentFilter
search_fields = ["account__first_name", "account__last_name", "group__name"]
ordering_fields = ["group", "account__last_name"]