begin api
This commit is contained in:
@@ -1,3 +1,73 @@
|
||||
from django.shortcuts import render
|
||||
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,
|
||||
)
|
||||
|
||||
# Create your views here.
|
||||
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"]
|
||||
Reference in New Issue
Block a user