Coverage for users\views\employe.py: 68%

19 statements  

« 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 EmployeProfile 

4from users.serializers import EmployeSerializer 

5 

6 

7class EmployeListView(rest_framework.generics.ListAPIView): 

8 """ 

9 Liste tous les employés. 

10 

11 Cette vue renvoie tous les employés, 

12 triés par date de création (du plus ancien au plus récent). 

13 L'accès est restreint aux Administrateurs. 

14 

15 :cvar permission_classes: Permissions requises pour accéder à la vue. 

16 :type permission_classes: list[rest_framework.permissions.BasePermission] 

17 """ 

18 

19 serializer_class = EmployeSerializer 

20 permission_classes = [IsAdmin] 

21 

22 def get_queryset(self): 

23 """ 

24 Retourne les clients. 

25 

26 :return: Liste des clients. 

27 :rtype: QuerySet[Client] 

28 """ 

29 return EmployeProfile.objects.all().order_by("nom") 

30 

31class EmployeSetInactiveView(rest_framework.generics.UpdateAPIView): 

32 """ 

33 Met un employé en inactif. 

34 

35 Cette vue permet aux administrateurs de désactiver un compte employé. 

36 L'accès est restreint aux Administrateurs. 

37 

38 :cvar serializer_class: Sérialiseur utilisé pour la mise à jour. 

39 :cvar permission_classes: Permissions requises pour accéder à la vue. 

40 :type permission_classes: list[rest_framework.permissions.BasePermission] 

41 """ 

42 

43 queryset = EmployeProfile.objects.all() 

44 serializer_class = EmployeSerializer 

45 permission_classes = [IsAdmin] 

46 

47 def perform_update(self, serializer): 

48 """ 

49 Met à jour le statut actif du client. 

50 

51 :param serializer: Sérialiseur avec les données mises à jour. 

52 :type serializer: ClientFullSerializer 

53 """ 

54 employe = serializer.instance 

55 user = employe.user 

56 user.is_active = not user.is_active 

57 user.save() 

58 serializer.save()