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, ) # Фильтры будут добавлены позже 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"]