# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay # SPDX-License-Identifier: GPL-3.0-or-later from django_filters.rest_framework import DjangoFilterBackend from rest_framework.filters import SearchFilter from api.viewsets import ReadProtectedModelViewSet from .serializers import WEIClubSerializer, BusSerializer, BusTeamSerializer, WEIRoleSerializer, \ WEIRegistrationSerializer, WEIMembershipSerializer from ..models import WEIClub, Bus, BusTeam, WEIRole, WEIRegistration, WEIMembership 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 filter_backends = [SearchFilter, DjangoFilterBackend] search_fields = ['$name', ] filterset_fields = ['name', 'year', ] 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/ """ queryset = Bus.objects serializer_class = BusSerializer filter_backends = [SearchFilter, DjangoFilterBackend] search_fields = ['$name', ] filterset_fields = ['name', 'wei', ] 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/ """ queryset = BusTeam.objects serializer_class = BusTeamSerializer filter_backends = [SearchFilter, DjangoFilterBackend] search_fields = ['$name', ] filterset_fields = ['name', 'bus', 'bus__wei', ] 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', ]