mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-30 23:39:54 +01:00 
			
		
		
		
	API
This commit is contained in:
		
							
								
								
									
										61
									
								
								apps/family/api/views.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								apps/family/api/views.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| # 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', ] | ||||
		Reference in New Issue
	
	Block a user