Coverage for api\views\lieu.py: 100%
25 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-13 15:18 +0200
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-13 15:18 +0200
1"""
2Module de vues pour la gestion des lieux sportifs.
4Ce module contient toutes les vues nécessaires pour effectuer des opérations CRUD
5sur les lieux où se déroulent les événements sportifs.
6"""
8import rest_framework.generics
9from api.models import Lieu
10from api.serializers import LieuSerializer
11from authentication.permissions import IsAdmin
12from rest_framework.permissions import IsAuthenticated, AllowAny
15class LieuListView(rest_framework.generics.ListAPIView):
16 """
17 Vue pour lister tous les lieux sportifs.
19 Permet de récupérer la liste complète des lieux disponibles
20 pour les événements sportifs.
21 Accessible à tous les utilisateurs (authentifiés ou non).
23 :cvar queryset: Queryset des lieux
24 :type queryset: QuerySet[Lieu]
25 :cvar serializer_class: Sérialiseur utilisé pour la vue
26 :type serializer_class: LieuSerializer
27 :cvar permission_classes: Permissions requises pour accéder à la vue
28 :type permission_classes: list
29 """
30 queryset = Lieu.objects.all()
31 serializer_class = LieuSerializer
32 permission_classes = [AllowAny]
35class LieuDetailView(rest_framework.generics.RetrieveAPIView):
36 """
37 Vue pour récupérer les détails d'un lieu spécifique.
39 Permet de récupérer les informations détaillées d'un lieu
40 via son identifiant unique.
41 Accessible à tous les utilisateurs (authentifiés ou non).
43 :cvar queryset: Queryset des lieux
44 :type queryset: QuerySet[Lieu]
45 :cvar serializer_class: Sérialiseur utilisé pour la vue
46 :type serializer_class: LieuSerializer
47 :cvar permission_classes: Permissions requises pour accéder à la vue
48 :type permission_classes: list
49 """
50 queryset = Lieu.objects.all()
51 serializer_class = LieuSerializer
52 permission_classes = [AllowAny]
55class LieuCreateView(rest_framework.generics.CreateAPIView):
56 """
57 Vue pour créer un nouveau lieu.
59 Permet aux administrateurs authentifiés de créer de nouveaux lieux sportifs.
60 Nécessite une authentification et des permissions d'administrateur.
62 :cvar queryset: Queryset des lieux
63 :type queryset: QuerySet[Lieu]
64 :cvar serializer_class: Sérialiseur utilisé pour la vue
65 :type serializer_class: LieuSerializer
66 :cvar permission_classes: Permissions requises pour accéder à la vue
67 :type permission_classes: list
68 """
69 queryset = Lieu.objects.all()
70 serializer_class = LieuSerializer
71 permission_classes = [IsAuthenticated, IsAdmin]
74class LieuUpdateView(rest_framework.generics.UpdateAPIView):
75 """
76 Vue pour mettre à jour un lieu existant.
78 Permet aux administrateurs authentifiés de modifier les informations
79 d'un lieu existant.
80 Nécessite une authentification et des permissions d'administrateur.
82 :cvar queryset: Queryset des lieux
83 :type queryset: QuerySet[Lieu]
84 :cvar serializer_class: Sérialiseur utilisé pour la vue
85 :type serializer_class: LieuSerializer
86 :cvar permission_classes: Permissions requises pour accéder à la vue
87 :type permission_classes: list
88 """
89 queryset = Lieu.objects.all()
90 serializer_class = LieuSerializer
91 permission_classes = [IsAuthenticated, IsAdmin]
94class LieuDeleteView(rest_framework.generics.DestroyAPIView):
95 """
96 Vue pour supprimer un lieu.
98 Permet aux administrateurs authentifiés de supprimer un lieu existant.
99 Nécessite une authentification et des permissions d'administrateur.
101 :cvar queryset: Queryset des lieux
102 :type queryset: QuerySet[Lieu]
103 :cvar serializer_class: Sérialiseur utilisé pour la vue
104 :type serializer_class: LieuSerializer
105 :cvar permission_classes: Permissions requises pour accéder à la vue
106 :type permission_classes: list
107 """
108 queryset = Lieu.objects.all()
109 serializer_class = LieuSerializer
110 permission_classes = [IsAuthenticated, IsAdmin]