Files
ProFi/events/views.py

97 lines
3.5 KiB
Python
Raw Permalink Normal View History

2025-05-19 17:10:30 +03:00
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,
) # Фильтры будут добавлены позже
2025-05-18 21:29:04 +03:00
2025-05-19 17:10:30 +03:00
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"]