from django.contrib.auth.models import User from django.db import models class Departement(models.Model): """Modèle représentant un département de l'entreprise.""" nom = models.CharField(max_length=100) def __str__(self): return self.nom class Employe(models.Model): """Modèle représentant un employé de l'entreprise.""" FONCTION_LISTE = [ ('directeur', 'Directeur'), ('assistant_direction', 'Assistante de direction'), ('assistant_technique_recherche', 'Assistant technique de recherche'), ('comptable', 'Comptable'), ('raf', 'RAF'), ('data_manager', 'Data Manager'), ('logisticien', 'Logisticien'), ('post_doctorant', 'Post-Doctorant'), ('qualiticien', 'Qualiticien'), ('technicien_surface', 'Technicien de surface'), ('chauffeur', 'Chauffeur'), ] user = models.OneToOneField(User, on_delete=models.CASCADE) matricule = models.CharField(max_length=10, unique=True, null=True, blank=True) departement = models.ForeignKey(Departement, on_delete=models.SET_NULL, null=True, blank=True) fonction = models.CharField(max_length=50, blank=True, null=True, choices=FONCTION_LISTE) date_embauche = models.DateField(blank=True, null=True) adresse = models.CharField(max_length=100, null=True, blank=True) telephone = models.CharField(max_length=15, null=True, blank=True) sexe = models.CharField(max_length=1, null=True, blank=True, choices=[('m', 'Masculin'), ('f', 'Féminin')]) date_naissance = models.DateField(blank=True, null=True) CV = models.FileField(upload_to='cv/', blank=True, null=True) diplome = models.FileField(upload_to='diplomes/', blank=True, null=True) rib = models.FileField(upload_to='rib/', blank=True, null=True) photo = models.ImageField(upload_to='photos/', blank=True, null=True) casier_judiciaire = models.FileField(upload_to='casier/', blank=True, null=True) chef = models.BooleanField( default=False, verbose_name="Cet utilisateur est-il chef de ce département ?" ) def __str__(self): return f"{self.user.first_name or 'N/A'} {self.user.last_name or ' '} ({self.matricule or ' '})"