"""Modèles pour l'authentification et la gestion des profils utilisateurs.""" from django.db import models from django.contrib.auth.models import User class Departement(models.Model): """Modèle représentant un département.""" nom_departement = models.TextField(verbose_name="Nom du département :") def __str__(self): """Retourne une représentation en chaîne de caractères du dép.""" return self.nom_departement class Profile(models.Model): """Modèle représentant le profil utilisateur. Il étend le modèle User de Django avec des informations supplémentaires. En y rajoutant notamment le département de l'utilisateur et s'il en est le chef. """ user = models.OneToOneField(User, on_delete=models.CASCADE) departement = models.ForeignKey( Departement, on_delete=models.SET_NULL, null=True, blank=True ) chef_departement = models.BooleanField( verbose_name="Cet utilisateur est-il chef de ce département ?" ) def __str__(self): """Retourne une représentation en chaîne de caractères du profil.""" return ( f"{self.user.first_name} {self.user.last_name} " f"({self.departement.nom_departement})" )