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
« 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
5class AdminProfile(models.Model):
6 """
7 Modèle représentant le profil d'un administrateur.
9 Ce profil est lié à un utilisateur via une relation OneToOne et contient
10 des informations supplémentaires propres aux administrateurs.
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 """
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 )
42 class Meta:
43 """
44 Métadonnées du modèle AdminProfile.
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"
54 def __str__(self):
55 """
56 Représentation textuelle du profil administrateur.
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})"