Files
test_OgureNG/backend-django/backend/models/formation_emploi.py
2022-11-08 21:19:51 +01:00

97 lines
4.8 KiB
Python

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
}