common 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 (
|
||||
InstitutionType,
|
||||
Representative,
|
||||
School,
|
||||
Partner,
|
||||
PartnerRepresentative,
|
||||
SchoolResponsibility,
|
||||
)
|
||||
from .serializers import (
|
||||
InstitutionTypeSerializer,
|
||||
RepresentativeSerializer,
|
||||
SchoolSerializer,
|
||||
PartnerSerializer,
|
||||
PartnerRepresentativeSerializer,
|
||||
SchoolResponsibilitySerializer,
|
||||
)
|
||||
from .filters import (
|
||||
SchoolFilter,
|
||||
SchoolResponsibilityFilter,
|
||||
) # Фильтры будут добавлены позже
|
||||
|
||||
# Create your views here.
|
||||
class InstitutionTypeViewSet(viewsets.ModelViewSet):
|
||||
queryset = InstitutionType.objects.all()
|
||||
serializer_class = InstitutionTypeSerializer
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
search_fields = ["name"]
|
||||
ordering_fields = ["name"]
|
||||
|
||||
|
||||
class RepresentativeViewSet(viewsets.ModelViewSet):
|
||||
queryset = Representative.objects.all()
|
||||
serializer_class = RepresentativeSerializer
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
search_fields = ["first_name", "last_name", "position"]
|
||||
ordering_fields = ["position"]
|
||||
|
||||
|
||||
class SchoolViewSet(viewsets.ModelViewSet):
|
||||
queryset = School.objects.all()
|
||||
serializer_class = SchoolSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_class = SchoolFilter
|
||||
search_fields = ["name", "address"]
|
||||
ordering_fields = ["institution_type", "name"]
|
||||
|
||||
|
||||
class PartnerViewSet(viewsets.ModelViewSet):
|
||||
queryset = Partner.objects.all()
|
||||
serializer_class = PartnerSerializer
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
search_fields = ["name", "description"]
|
||||
ordering_fields = ["name"]
|
||||
|
||||
|
||||
class PartnerRepresentativeViewSet(viewsets.ModelViewSet):
|
||||
queryset = PartnerRepresentative.objects.all()
|
||||
serializer_class = PartnerRepresentativeSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_fields = ["representative", "partner"]
|
||||
search_fields = ["representative__first_name", "partner__name"]
|
||||
ordering_fields = ["partner", "representative"]
|
||||
|
||||
|
||||
class SchoolResponsibilityViewSet(viewsets.ModelViewSet):
|
||||
queryset = SchoolResponsibility.objects.all()
|
||||
serializer_class = SchoolResponsibilitySerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_class = SchoolResponsibilityFilter
|
||||
search_fields = ["school__name", "responsible__account__first_name"]
|
||||
ordering_fields = ["academic_year", "responsible", "school"]
|
||||
Reference in New Issue
Block a user