# Managers
objects = PosteManager()
+ def get_dossiers(self):
+ """
+ Liste tous les anciens dossiers liés à ce poste.
+ (Le nom de la relation sur le rh.Poste est mal choisi poste1 au lieu de dossier1)
+ Note1 : seulement le dosssier principal fait l'objet de la recherche.
+ Note2 : les dossiers sont retournés du plus récent au plus vieux. (Ce test est fait
+ en fonction du id, car les dates de création sont absentes de rh v1).
+ """
+ if self.id_rh is None:
+ return []
+ postes = [p for p in self.id_rh.poste1.all()]
+ return sorted(postes, key=lambda poste: poste.id, reverse=True)
+
+ def get_complement_nom(self):
+ """
+ Inspecte les modèles rh v1 pour trouver dans le dernier dossier un complément de titre de poste.
+ """
+ dossiers = self.get_dossiers()
+ if len(dossiers) > 0:
+ nom = dossiers[0].complement1
+ else:
+ nom = ""
+
+ if nom == "":
+ return None
+ else:
+ return nom
+
+ def get_employe(self):
+ """
+ Inspecte les modèles rh v1 pour trouver l'employé du dernier dossier.
+ """
+ dossiers = self.get_dossiers()
+ if len(dossiers) > 0:
+ return dossiers[0].employe
+ else:
+ return None
+
def __unicode__(self):
- return u'%s - %s (%s) [dae-%s]' % (self.implantation, self.type_poste.nom,
- self.nom, self.id)
+ """
+ Cette fonction est consommatrice SQL car elle cherche les dossiers qui ont été liés à celui-ci.
+ """
+ complement_nom_poste = self.get_complement_nom()
+ employe = self.get_employe()
+ data = (
+ self.implantation,
+ self.type_poste.nom,
+ self.nom,
+ self.id,
+ complement_nom_poste,
+ employe,
+ )
+ return u'%s - %s (%s) [dae-%s %s %s]' % data
def DISABLED_save(self, *args, **kwargs):
# calculate nb_mois = nb of months between date_debut and date_fin