from django.db import models from .garnison import Garnison from .user import CustomUser class GroupeFe(models.Model): """ Modèle de groupes FE """ groupe_fe_nom = models.CharField(primary_key=True, max_length=100, verbose_name='Groupe de FE') def __str__(self): return self.groupe_fe_nom class PcpFeGroupe(models.Model): """ Modèle d'association des groupes de FE aux gestionnaires PCP """ CATEGORIE_CHOICES = [('MDR', 'MDR'), ('OFF', 'OFF'), ('SOFF', 'SOFF'), ('OGX', 'OGX')] pcp_fe_id = models.AutoField(primary_key=True) pcp_fe_groupe = models.ForeignKey(GroupeFe, null=True, blank=True, on_delete=models.CASCADE, verbose_name='Nom du groupe') pcp_fe_categorie = models.CharField(max_length=5, choices=CATEGORIE_CHOICES, null=True, blank=True, verbose_name='Catégorie') gestionnaire = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True, blank=True, db_constraint=False) def __str__(self): return str(self.gestionnaire.first_name) + ' ' + str(self.gestionnaire.last_name.upper()) + ' / ' + self.pcp_fe_groupe.groupe_fe_nom + ' / ' + self.pcp_fe_categorie class Meta: verbose_name = 'Lien gest PCP / groupe FE' verbose_name_plural = 'Liens gest PCP / groupe FE' class FormationEmploi(models.Model): """ Modèle des formations d'emplois """ class Cols(): """ Constantes pour les noms de colonnes """ PK = 'fe_code' LIBELLE = 'fe_libelle' ZONE_DEFENSE = 'zone_defense' REL_MERE = 'mere' REL_POSTE = 'poste' M2M_GESTIONNAIRE = 'gestionnaires' fe_code = models.CharField(primary_key=True, max_length=100) groupe_fe = models.ForeignKey(GroupeFe, blank=True, on_delete=models.SET_NULL, null=True) gestionnaires = models.ManyToManyField(CustomUser, related_name=CustomUser.Cols.M2M_FORMATION_EMPLOIS, blank=True) fe_code_postal = models.CharField(max_length=100, null=True, blank=True) fe_garnison_lieu = models.CharField(max_length=100, null=True, blank=True) fe_libelle = models.CharField(max_length=100, null=True, blank=True) fe_taux_armement_cible_off = models.FloatField(null=True, blank=True, verbose_name="TA cible OFF") fe_nb_poste_reo_off = models.IntegerField(null=True, blank=True) fe_nb_poste_reevalue_off = models.IntegerField(null=True, blank=True) fe_nb_poste_vacant_off = models.IntegerField(null=True, blank=True) fe_nb_poste_occupe_off = models.IntegerField(null=True, blank=True) fe_taux_armement_cible_soff = models.FloatField(null=True, blank=True, verbose_name="TA cible SOFF") fe_nb_poste_reo_soff = models.IntegerField(null=True, blank=True) fe_nb_poste_reevalue_soff = models.IntegerField(null=True, blank=True) fe_nb_poste_vacant_soff = models.IntegerField(null=True, blank=True) fe_nb_poste_occupe_soff = models.IntegerField(null=True, blank=True) fe_taux_armement_cible_mdr = models.FloatField(null=True, blank=True, verbose_name="TA cible MDR") fe_nb_poste_reo_mdr = models.IntegerField(null=True, blank=True) fe_nb_poste_reevalue_mdr = models.IntegerField(null=True, blank=True) fe_nb_poste_vacant_mdr = models.IntegerField(null=True, blank=True) fe_nb_poste_occupe_mdr = models.IntegerField(null=True, blank=True) fe_mere_credo = models.CharField('Code FE mère', max_length=100, null=True, blank=True) fe_mere_la = models.CharField('Libelle FE mère', max_length=100, null=True, blank=True) fe_fot = models.CharField(max_length=100, null=True, blank=True) fe_abo_fe = models.CharField(max_length=100, null=True, blank=True) fe_pilier_niv1 = models.CharField(max_length=100, null=True, blank=True) fe_code_niv_org4 = models.CharField('Code niveau d\'org 4', max_length=100, null=True, blank=True) fe_niv_org4 = models.CharField('Libelle niveau d\'org 4', max_length=100, null=True, blank=True) fe_code_niv_org4_mdr = models.CharField('Code niveau d\'org 4 (MDR)', max_length=100, null=True, blank=True) fe_niv_org4_mdr = models.CharField('Libelle niveau d\'org 4 (MDR)', max_length=100, null=True, blank=True) zone_defense = models.CharField('zone de défense', db_column='fe_zone_defense', max_length=64, blank=True, null=True) mere = models.ForeignKey('self', blank=True, null=True, on_delete=models.SET_NULL, verbose_name='FE mère', db_column='fe_mere_id') def as_dict(self): return { "id": self.fe_code, "code": self.fe_code, "libelle": self.fe_libelle, "mere_code": self.fe_mere_credo, "mere_la": self.fe_mere_la, "groupe_fe": self.groupe_fe_id, "fe_garnison_lieu": self.fe_garnison_lieu, "zone_defense": self.zone_defense }