mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-07-19 23:51:25 +02:00
62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
# Copyright (C) 2018-2025 by BDE ENS Paris-Saclay
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
from api.viewsets import ReadProtectedModelViewSet
|
|
from django_filters.rest_framework import DjangoFilterBackend
|
|
from rest_framework.filters import SearchFilter
|
|
|
|
from .serializers import FamilySerializer, FamilyMembershipSerializer, ChallengeSerializer, AchievementSerializer
|
|
from ..models import Family, FamilyMembership, Challenge, Achievement
|
|
|
|
|
|
class FamilyViewSet(ReadProtectedModelViewSet):
|
|
"""
|
|
REST API View set.
|
|
The djangorestframework plugin will get all `Family` objects, serialize it to JSON with the given serializer,
|
|
then render it on /api/family/family/
|
|
"""
|
|
queryset = Family.object.order_by('id')
|
|
serializer_class = FamilySerializer
|
|
filter_backends = [DjangoFilterBackend, SearchFilter]
|
|
filterset_fields = ['name', ]
|
|
search_fields = ['§name', ]
|
|
|
|
|
|
class FamilyMembershipViewSet(ReadProtectedModelViewSet):
|
|
"""
|
|
REST API View set.
|
|
The djangorestframework plugin will get all `FamilyMembership` objects, serialize it to JSON with the given serializer,
|
|
then render it on /api/family/familymembership/
|
|
"""
|
|
queryset = FamilyMembership.object.order_by('id')
|
|
serializer_class = FamilyMembershipSerializer
|
|
filter_backends = [DjangoFilterBackend, SearchFilter]
|
|
filterset_fields = ['name', ]
|
|
search_fields = ['§name', ]
|
|
|
|
|
|
class ChallengeViewSet(ReadProtectedModelViewSet):
|
|
"""
|
|
REST API View set.
|
|
The djangorestframework plugin will get all `Challenge` objects, serialize it to JSON with the given serializer,
|
|
then render it on /api/family/challenge/
|
|
"""
|
|
queryset = Challenge.object.order_by('id')
|
|
serializer_class = ChallengeSerializer
|
|
filter_backends = [DjangoFilterBackend, SearchFilter]
|
|
filterset_fields = ['name', ]
|
|
search_fields = ['§name', ]
|
|
|
|
|
|
class AchievementViewSet(ReadProtectedModelViewSet):
|
|
"""
|
|
REST API View set.
|
|
The djangorestframework plugin will get all `Achievement` objects, serialize it to JSON with the given serializer,
|
|
then render it on /api/family/achievement/
|
|
"""
|
|
queryset = Achievement.object.order_by('id')
|
|
serializer_class = AchievementSerializer
|
|
filter_backends = [DjangoFilterBackend, SearchFilter]
|
|
filterset_fields = ['name', ]
|
|
search_fields = ['§name', ]
|