Coverage for users\views\client.py: 68%
19 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
1import rest_framework.generics
2from authentication.permissions import IsAdmin
3from users.models import ClientProfile
4from users.serializers.client import ClientFullSerializer
7class ClientListView(rest_framework.generics.ListAPIView):
8 """
9 Liste tous les clients.
11 Cette vue renvoie tous les clients,
12 triés par date de création (du plus ancien au plus récent).
13 L'accès est restreint aux Administrateurs.
15 :cvar serializer_class: Sérialiseur utilisé pour convertir les clients en JSON.
16 :type serializer_class: ClientSerializer
17 :cvar permission_classes: Permissions requises pour accéder à la vue.
18 :type permission_classes: list[rest_framework.permissions.BasePermission]
19 """
21 serializer_class = ClientFullSerializer
22 permission_classes = [IsAdmin]
24 def get_queryset(self):
25 """
26 Retourne les clients.
28 :return: Liste des clients.
29 :rtype: QuerySet[Client]
30 """
31 return ClientProfile.objects.all().order_by("nom")
33class ClientSetInactiveView(rest_framework.generics.UpdateAPIView):
34 """
35 Met un client en inactif.
37 Cette vue permet aux administrateurs de désactiver un compte client.
38 L'accès est restreint aux Administrateurs.
40 :cvar queryset: Queryset des clients.
41 :type queryset: QuerySet[ClientProfile]
42 :cvar serializer_class: Sérialiseur utilisé pour la mise à jour.
43 :type serializer_class: ClientFullSerializer
44 :cvar permission_classes: Permissions requises pour accéder à la vue.
45 :type permission_classes: list[rest_framework.permissions.BasePermission]
46 """
48 queryset = ClientProfile.objects.all()
49 serializer_class = ClientFullSerializer
50 permission_classes = [IsAdmin]
52 def perform_update(self, serializer):
53 """
54 Met à jour le statut actif du client.
56 :param serializer: Sérialiseur avec les données mises à jour.
57 :type serializer: ClientFullSerializer
58 """
59 client = serializer.instance
60 user = client.user
61 user.is_active = not user.is_active
62 user.save()
63 serializer.save()