2020-04-11 21:02:12 +00:00
|
|
|
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
2020-04-19 23:26:53 +00:00
|
|
|
from django_filters.rest_framework import DjangoFilterBackend
|
2020-04-11 21:02:12 +00:00
|
|
|
from rest_framework.filters import SearchFilter
|
|
|
|
from api.viewsets import ReadProtectedModelViewSet
|
|
|
|
|
2020-04-21 15:49:06 +00:00
|
|
|
from .serializers import WEIClubSerializer, BusSerializer, BusTeamSerializer, WEIRoleSerializer, \
|
|
|
|
WEIRegistrationSerializer, WEIMembershipSerializer
|
|
|
|
from ..models import WEIClub, Bus, BusTeam, WEIRole, WEIRegistration, WEIMembership
|
2020-04-11 21:02:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
class WEIClubViewSet(ReadProtectedModelViewSet):
|
|
|
|
"""
|
|
|
|
REST API View set.
|
|
|
|
The djangorestframework plugin will get all `WEIClub` objects, serialize it to JSON with the given serializer,
|
|
|
|
then render it on /api/wei/club/
|
|
|
|
"""
|
|
|
|
queryset = WEIClub.objects.all()
|
|
|
|
serializer_class = WEIClubSerializer
|
2020-04-19 23:26:53 +00:00
|
|
|
filter_backends = [SearchFilter, DjangoFilterBackend]
|
2020-04-11 21:02:12 +00:00
|
|
|
search_fields = ['$name', ]
|
2020-04-19 23:26:53 +00:00
|
|
|
filterset_fields = ['name', 'year', ]
|
2020-04-13 03:02:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
class BusViewSet(ReadProtectedModelViewSet):
|
|
|
|
"""
|
|
|
|
REST API View set.
|
|
|
|
The djangorestframework plugin will get all `Bus` objects, serialize it to JSON with the given serializer,
|
|
|
|
then render it on /api/wei/bus/
|
|
|
|
"""
|
2020-04-21 15:49:06 +00:00
|
|
|
queryset = Bus.objects
|
2020-04-13 03:02:16 +00:00
|
|
|
serializer_class = BusSerializer
|
2020-04-19 23:26:53 +00:00
|
|
|
filter_backends = [SearchFilter, DjangoFilterBackend]
|
2020-04-13 03:02:16 +00:00
|
|
|
search_fields = ['$name', ]
|
2020-04-19 23:26:53 +00:00
|
|
|
filterset_fields = ['name', 'wei', ]
|
2020-04-13 03:02:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
class BusTeamViewSet(ReadProtectedModelViewSet):
|
|
|
|
"""
|
|
|
|
REST API View set.
|
|
|
|
The djangorestframework plugin will get all `BusTeam` objects, serialize it to JSON with the given serializer,
|
|
|
|
then render it on /api/wei/team/
|
|
|
|
"""
|
2020-04-21 15:49:06 +00:00
|
|
|
queryset = BusTeam.objects
|
2020-04-13 03:02:16 +00:00
|
|
|
serializer_class = BusTeamSerializer
|
2020-04-19 23:26:53 +00:00
|
|
|
filter_backends = [SearchFilter, DjangoFilterBackend]
|
2020-04-13 03:02:16 +00:00
|
|
|
search_fields = ['$name', ]
|
2020-04-20 22:07:00 +00:00
|
|
|
filterset_fields = ['name', 'bus', 'bus__wei', ]
|
2020-04-21 15:49:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
class WEIRoleViewSet(ReadProtectedModelViewSet):
|
|
|
|
"""
|
|
|
|
REST API View set.
|
|
|
|
The djangorestframework plugin will get all `WEIRole` objects, serialize it to JSON with the given serializer,
|
|
|
|
then render it on /api/wei/role/
|
|
|
|
"""
|
|
|
|
queryset = WEIRole.objects
|
|
|
|
serializer_class = WEIRoleSerializer
|
|
|
|
filter_backends = [SearchFilter]
|
|
|
|
search_fields = ['$name', ]
|
|
|
|
|
|
|
|
|
|
|
|
class WEIRegistrationViewSet(ReadProtectedModelViewSet):
|
|
|
|
"""
|
|
|
|
REST API View set.
|
|
|
|
The djangorestframework plugin will get all WEIRegistration objects, serialize it to JSON with the given serializer,
|
|
|
|
then render it on /api/wei/registration/
|
|
|
|
"""
|
|
|
|
queryset = WEIRegistration.objects
|
|
|
|
serializer_class = WEIRegistrationSerializer
|
|
|
|
filter_backends = [SearchFilter, DjangoFilterBackend]
|
|
|
|
search_fields = ['$user__username', ]
|
|
|
|
filterset_fields = ['user', 'wei', ]
|
|
|
|
|
|
|
|
|
|
|
|
class WEIMembershipViewSet(ReadProtectedModelViewSet):
|
|
|
|
"""
|
|
|
|
REST API View set.
|
|
|
|
The djangorestframework plugin will get all `BusTeam` objects, serialize it to JSON with the given serializer,
|
|
|
|
then render it on /api/wei/membership/
|
|
|
|
"""
|
|
|
|
queryset = WEIMembership.objects
|
|
|
|
serializer_class = WEIMembershipSerializer
|
|
|
|
filter_backends = [SearchFilter, DjangoFilterBackend]
|
|
|
|
search_fields = ['$user__username', '$bus__name', '$team__name', ]
|
|
|
|
filterset_fields = ['user', 'club', 'bus', 'team', ]
|