common api
This commit is contained in:
@@ -1,3 +1,97 @@
|
||||
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 (
|
||||
EventStatus,
|
||||
ActivityType,
|
||||
Event,
|
||||
EventOrganizer,
|
||||
EventDetail,
|
||||
EventParticipant,
|
||||
MethodicalFile,
|
||||
RelevantMethodicalFile,
|
||||
)
|
||||
from .serializers import (
|
||||
EventStatusSerializer,
|
||||
ActivityTypeSerializer,
|
||||
EventSerializer,
|
||||
EventOrganizerSerializer,
|
||||
EventDetailSerializer,
|
||||
EventParticipantSerializer,
|
||||
MethodicalFileSerializer,
|
||||
RelevantMethodicalFileSerializer,
|
||||
)
|
||||
from .filters import (
|
||||
EventFilter,
|
||||
EventParticipantFilter,
|
||||
MethodicalFileFilter,
|
||||
) # Фильтры будут добавлены позже
|
||||
|
||||
# Create your views here.
|
||||
class EventStatusViewSet(viewsets.ModelViewSet):
|
||||
queryset = EventStatus.objects.all()
|
||||
serializer_class = EventStatusSerializer
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
search_fields = ["name"]
|
||||
ordering_fields = ["name"]
|
||||
|
||||
|
||||
class ActivityTypeViewSet(viewsets.ModelViewSet):
|
||||
queryset = ActivityType.objects.all()
|
||||
serializer_class = ActivityTypeSerializer
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
search_fields = ["name"]
|
||||
ordering_fields = ["name"]
|
||||
|
||||
|
||||
class EventViewSet(viewsets.ModelViewSet):
|
||||
queryset = Event.objects.all()
|
||||
serializer_class = EventSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_class = EventFilter
|
||||
search_fields = ["name", "location", "description"]
|
||||
ordering_fields = ["date", "name"]
|
||||
|
||||
|
||||
class EventOrganizerViewSet(viewsets.ModelViewSet):
|
||||
queryset = EventOrganizer.objects.all()
|
||||
serializer_class = EventOrganizerSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_fields = ["employee", "event"]
|
||||
search_fields = ["employee__account__first_name", "employee__account__last_name"]
|
||||
ordering_fields = ["employee", "event"]
|
||||
|
||||
|
||||
class EventDetailViewSet(viewsets.ModelViewSet):
|
||||
queryset = EventDetail.objects.all()
|
||||
serializer_class = EventDetailSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_fields = ["activity_type", "event"]
|
||||
search_fields = ["activity_type__name"]
|
||||
ordering_fields = ["activity_type", "event"]
|
||||
|
||||
|
||||
class EventParticipantViewSet(viewsets.ModelViewSet):
|
||||
queryset = EventParticipant.objects.all()
|
||||
serializer_class = EventParticipantSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_class = EventParticipantFilter
|
||||
search_fields = ["student__account__first_name", "student__account__last_name"]
|
||||
ordering_fields = ["event", "student", "points"]
|
||||
|
||||
|
||||
class MethodicalFileViewSet(viewsets.ModelViewSet):
|
||||
queryset = MethodicalFile.objects.all()
|
||||
serializer_class = MethodicalFileSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_class = MethodicalFileFilter
|
||||
search_fields = ["name", "specialty__name"]
|
||||
ordering_fields = ["specialty", "name", "upload_date"]
|
||||
|
||||
|
||||
class RelevantMethodicalFileViewSet(viewsets.ModelViewSet):
|
||||
queryset = RelevantMethodicalFile.objects.all()
|
||||
serializer_class = RelevantMethodicalFileSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_fields = ["methodical_file", "activity_type"]
|
||||
search_fields = ["methodical_file__name", "activity_type__name"]
|
||||
ordering_fields = ["methodical_file", "activity_type"]
|
||||
Reference in New Issue
Block a user