2026-07-14 09:03:28 +00:00
# Generated by Django 5.2.13 on 2026-07-03 18:13
2026-04-30 13:28:57 +02:00
import django . db . models . deletion
from django . conf import settings
from django . db import migrations , models
class Migration ( migrations . Migration ) :
initial = True
dependencies = [
( ' gestion_projet ' , ' 0001_initial ' ) ,
migrations . swappable_dependency ( settings . AUTH_USER_MODEL ) ,
]
operations = [
migrations . CreateModel (
name = ' Departement ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' nom ' , models . CharField ( max_length = 100 ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' Employe ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' matricule ' , models . CharField ( blank = True , max_length = 10 , null = True , unique = True ) ) ,
2026-07-14 09:03:28 +00:00
( ' fonction ' , models . CharField ( blank = True , choices = [ ( ' 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 ' ) ] , max_length = 50 , null = True ) ) ,
2026-04-30 13:28:57 +02:00
( ' date_embauche ' , models . DateField ( blank = True , null = True ) ) ,
( ' adresse ' , models . CharField ( blank = True , max_length = 100 , null = True ) ) ,
( ' telephone ' , models . CharField ( blank = True , max_length = 15 , null = True ) ) ,
( ' sexe ' , models . CharField ( blank = True , choices = [ ( ' m ' , ' Masculin ' ) , ( ' f ' , ' Féminin ' ) ] , max_length = 1 , null = True ) ) ,
( ' date_naissance ' , models . DateField ( blank = True , null = True ) ) ,
( ' CV ' , models . FileField ( blank = True , null = True , upload_to = ' cv/ ' ) ) ,
( ' diplome ' , models . FileField ( blank = True , null = True , upload_to = ' diplomes/ ' ) ) ,
( ' rib ' , models . FileField ( blank = True , null = True , upload_to = ' rib/ ' ) ) ,
( ' photo ' , models . ImageField ( blank = True , null = True , upload_to = ' photos/ ' ) ) ,
( ' casier_judiciaire ' , models . FileField ( blank = True , null = True , upload_to = ' casier/ ' ) ) ,
( ' chef ' , models . BooleanField ( default = False , verbose_name = ' Cet utilisateur est-il chef de ce département ? ' ) ) ,
( ' departement ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , to = ' gestion_employe.departement ' ) ) ,
( ' user ' , models . OneToOneField ( on_delete = django . db . models . deletion . CASCADE , to = settings . AUTH_USER_MODEL ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' Contrat ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' numero_contrat ' , models . CharField ( max_length = 100 , unique = True ) ) ,
2026-07-14 09:03:28 +00:00
( ' type_contrat ' , models . CharField ( choices = [ ( ' contrat_duree_determinee ' , ' Contrat à Durée Déterminée ' ) , ( ' contrat_duree_indeterminee ' , ' Contrat à Durée Indéterminée ' ) , ( ' contrat_prestation ' , ' Contrat de Prestation de Service ' ) , ( ' contrat_stage ' , ' Contrat de Stage ' ) , ( ' convention_bourse_entretien ' , " Convention de bourse d ' entretien " ) ] , max_length = 50 ) ) ,
2026-04-30 13:28:57 +02:00
( ' date_debut ' , models . DateField ( ) ) ,
( ' date_fin ' , models . DateField ( blank = True , null = True ) ) ,
( ' salaire_mensuel ' , models . DecimalField ( blank = True , decimal_places = 2 , max_digits = 10 , null = True ) ) ,
( ' statut ' , models . CharField ( choices = [ ( ' actif ' , ' Actif ' ) , ( ' termine ' , ' Terminé ' ) , ( ' suspendu ' , ' Suspendu ' ) , ( ' rupture_contrat ' , ' Rupture de Contrat ' ) ] , max_length = 50 ) ) ,
( ' fichier_contrat ' , models . FileField ( blank = True , null = True , upload_to = ' contrats/ ' ) ) ,
( ' employe ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , to = ' gestion_employe.employe ' ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' Formation ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' titre ' , models . CharField ( max_length = 255 , verbose_name = ' Nom du certificat ' ) ) ,
( ' organisme ' , models . CharField ( max_length = 255 , verbose_name = " Nom de l ' organisme " ) ) ,
( ' description ' , models . TextField ( blank = True , null = True , verbose_name = ' Description de la formation ' ) ) ,
( ' date_obtention ' , models . DateField ( blank = True , null = True , verbose_name = " Date d ' obtention " ) ) ,
( ' date_fin ' , models . DateField ( blank = True , null = True , verbose_name = ' Date de fin de validité ' ) ) ,
( ' certificat ' , models . FileField ( blank = True , null = True , upload_to = ' documents/formations/ ' , verbose_name = ' Certificat (PDF/Image) ' ) ) ,
( ' employe ' , models . ForeignKey ( null = True , on_delete = django . db . models . deletion . CASCADE , related_name = ' employe_formation ' , to = ' gestion_employe.employe ' ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' Affectation ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' date_affectation ' , models . DateField ( ) ) ,
( ' date_fin_daffectation ' , models . DateField ( blank = True , null = True ) ) ,
( ' role ' , models . CharField ( choices = [ ( ' chef_projet ' , ' Chef de projet ' ) , ( ' doctorant ' , ' Doctorant ' ) , ( ' mastorant ' , ' Mastorant ' ) , ( ' consultant ' , ' Consultant ' ) , ( ' stagiaire ' , ' Stagiaire ' ) , ( ' laborantin ' , ' Laborantin ' ) , ( ' medecin ' , ' Médecin ' ) , ( ' autre ' , ' Autre ' ) ] , default = ' Membre ' , max_length = 20 ) ) ,
( ' pourcentage_temps_affectation ' , models . DecimalField ( decimal_places = 2 , max_digits = 5 ) ) ,
( ' projet ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , to = ' gestion_projet.projet ' ) ) ,
( ' employe ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , to = ' gestion_employe.employe ' ) ) ,
] ,
options = {
' unique_together ' : { ( ' projet ' , ' employe ' ) } ,
} ,
) ,
]