Coverage for users\models\admin.py: 92%

12 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-10-13 15:18 +0200

1from django.db import models 

2from .base_user import User 

3 

4 

5class AdminProfile(models.Model): 

6 """ 

7 Modèle représentant le profil d'un administrateur. 

8 

9 Ce profil est lié à un utilisateur via une relation OneToOne et contient 

10 des informations supplémentaires propres aux administrateurs. 

11 

12 :ivar user: L'utilisateur associé au profil admin 

13 :vartype user: User 

14 :ivar nom: Nom de famille de l'administrateur 

15 :vartype nom: str 

16 :ivar prenom: Prénom de l'administrateur 

17 :vartype prenom: str 

18 :ivar matricule: Identifiant unique de l'administrateur 

19 :vartype matricule: str 

20 """ 

21 

22 user = models.OneToOneField( 

23 User, 

24 on_delete=models.CASCADE, 

25 related_name="admin_profile", 

26 help_text="Utilisateur lié à ce profil administrateur." 

27 ) 

28 nom = models.CharField( 

29 max_length=100, 

30 help_text="Nom de famille de l'administrateur." 

31 ) 

32 prenom = models.CharField( 

33 max_length=100, 

34 help_text="Prénom de l'administrateur." 

35 ) 

36 matricule = models.CharField( 

37 max_length=50, 

38 unique=True, 

39 help_text="Matricule unique identifiant l'administrateur." 

40 ) 

41 

42 class Meta: 

43 """ 

44 Métadonnées du modèle AdminProfile. 

45 

46 :cvar verbose_name: Nom lisible du modèle au singulier 

47 :vartype verbose_name: str 

48 :cvar verbose_name_plural: Nom lisible du modèle au pluriel 

49 :vartype verbose_name_plural: str 

50 """ 

51 verbose_name = "Profil administrateur" 

52 verbose_name_plural = "Profils administrateurs" 

53 

54 def __str__(self): 

55 """ 

56 Représentation textuelle du profil administrateur. 

57 

58 :return: Prénom et nom de l'administrateur avec son matricule 

59 :rtype: str 

60 """ 

61 return f"{self.prenom} {self.nom} (Matricule: {self.matricule})"