diff --git a/app/comp/res_compat.py b/app/comp/res_compat.py index 4691c68ad134aa12df5be3166a56e35149b8a676..82b1ad882ebd9fceafa9632b7f2b4ddd540e265b 100644 --- a/app/comp/res_compat.py +++ b/app/comp/res_compat.py @@ -297,7 +297,7 @@ class NotesTableCompat(ResultatsSemestre): """ return bool( self.get_etud_decisions_ue(etudid) - or self.get_etud_decision_sem(etudid) + or self.get_etud_decision_sem(etudid, ignore_def=True) or ScolarAutorisationInscription.query.filter_by( origin_formsemestre_id=self.formsemestre.id, etudid=etudid ).count() @@ -333,22 +333,21 @@ class NotesTableCompat(ResultatsSemestre): return 0.0 return float(sum(d.get("ects", 0) for d in decisions_ues.values())) - def get_etud_decision_sem(self, etudid: int) -> dict: + def get_etud_decision_sem(self, etudid: int, ignore_def: bool = False) -> dict: """Decision du jury semestre prise pour cet etudiant, ou None s'il n'y en pas eu. { 'code' : None|ATT|..., 'assidu' : 0|1, 'event_date' : , compense_formsemestre_id } - Si état défaillant, force le code a DEF. - Toujours None en BUT. + Si état défaillant, force le code a DEF, sauf si ignore_def=True. + Normalement None en BUT, sauf si DEF. """ - if self.get_etud_etat(etudid) == DEF: + if (not ignore_def) and self.get_etud_etat(etudid) == DEF: return { "code": DEF, "assidu": False, "event_date": "", "compense_formsemestre_id": None, } - else: - validations = self.get_formsemestre_validations() - return validations.decisions_jury.get(etudid, None) + validations = self.get_formsemestre_validations() + return validations.decisions_jury.get(etudid, None) def get_etud_mat_moy(self, matiere_id: int, etudid: int) -> str: """moyenne d'un étudiant dans une matière (ou NA si pas de notes)"""