diff --git a/app/pe/pe_etudiant.py b/app/pe/pe_etudiant.py index 58d865ea3..3486e5937 100644 --- a/app/pe/pe_etudiant.py +++ b/app/pe/pe_etudiant.py @@ -41,7 +41,8 @@ import app.pe.pe_rcs from app.models import FormSemestre, Identite, Formation from app.pe import pe_comp, pe_affichage from app.scodoc import codes_cursus - +from app.scodoc import sco_utils as scu +from app.comp.res_sem import load_formsemestre_results class EtudiantsJuryPE: """Classe centralisant la gestion des étudiants à prendre en compte dans un jury de PE""" @@ -236,8 +237,15 @@ class EtudiantsJuryPE: "abandon": False, # va être traité en dessous } - # Est-il réorienté / démissionnaire ou a-t-il arrêté volontairement sa formation ? - self.cursus[etudid]["abandon"] = arret_de_formation(identite, cosemestres) + # Est-il démissionnaire : charge son dernier semestre pour connaitre son état ? + dernier_semes_etudiant = formsemestres[0] + res = load_formsemestre_results(dernier_semes_etudiant) + etud_etat = res.get_etud_etat(etudid) + if etud_etat == scu.DEMISSION: + self.cursus[etudid]["abandon"] |= True + else: + # Est-il réorienté ou a-t-il arrêté volontairement sa formation ? + self.cursus[etudid]["abandon"] |= arret_de_formation(identite, cosemestres) def get_semestres_significatifs(self, etudid: int): """Ensemble des semestres d'un étudiant, qui l'auraient amené à être diplomé @@ -251,7 +259,6 @@ class EtudiantsJuryPE: Un dictionnaire ``{fid: FormSemestre(fid)`` dans lequel les semestres amènent à une diplomation avant l'annee de diplomation du jury """ - semestres_etudiant = self.cursus[etudid]["formsemestres"] semestres_significatifs = {} for fid in semestres_etudiant: