Première implementation de sso
This commit is contained in:
49
authentification/models.py
Normal file
49
authentification/models.py
Normal file
@@ -0,0 +1,49 @@
|
||||
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 ' '})"
|
||||
Reference in New Issue
Block a user