89 lines
6.1 KiB
Python
89 lines
6.1 KiB
Python
# Generated by Django 5.2.13 on 2026-04-17 12:03
|
|
|
|
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)),
|
|
('fonction', models.CharField(blank=True, choices=[('directeur', 'Directeur'), ('assistant_direction', 'Assistante de direction'), ('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)),
|
|
('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)),
|
|
('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')], max_length=50)),
|
|
('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')},
|
|
},
|
|
),
|
|
]
|