73 lines
2.6 KiB
Python
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,
|
|
StudyDepartmentSerializer,
|
|
StudyDepartmentHeadSerializer,
|
|
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 = StudyDepartmentSerializer
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
filterset_class = DepartmentFilter
|
|
search_fields = ["name"]
|
|
ordering_fields = ["name"]
|
|
|
|
|
|
class DepartmentHeadViewSet(viewsets.ModelViewSet):
|
|
queryset = DepartmentHead.objects.all()
|
|
serializer_class = StudyDepartmentHeadSerializer
|
|
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"] |