diff --git a/app/comp/res_common.py b/app/comp/res_common.py index 267f5e7fa..926bc7c97 100644 --- a/app/comp/res_common.py +++ b/app/comp/res_common.py @@ -150,7 +150,7 @@ class ResultatsSemestre(ResultatsCache): def etud_ects_tot_sem(self, etudid: int) -> float: """Le total des ECTS associées à ce semestre (que l'étudiant peut ou non valider)""" etud_ues = self.etud_ues(etudid) - return sum([ue.ects or 0 for ue in etud_ues]) if etud_ues else 0.0 + return sum([ue.ects or 0.0 for ue in etud_ues]) if etud_ues else 0.0 def modimpl_notes(self, modimpl_id: int, ue_id: int) -> np.ndarray: """Les notes moyennes des étudiants du sem. à ce modimpl dans cette ue. diff --git a/app/comp/res_compat.py b/app/comp/res_compat.py index 0b11c06ba..4691c68ad 100644 --- a/app/comp/res_compat.py +++ b/app/comp/res_compat.py @@ -322,7 +322,7 @@ class NotesTableCompat(ResultatsSemestre): validations = self.get_formsemestre_validations() return validations.decisions_jury_ues.get(etudid, None) - def get_etud_ects_valides(self, etudid: int, decisions_ues: dict = False) -> int: + def get_etud_ects_valides(self, etudid: int, decisions_ues: dict = False) -> float: """Le total des ECTS validés (et enregistrés) par l'étudiant dans ce semestre. NB: avant jury, rien d'enregistré, donc zéro ECTS. Optimisation: si decisions_ues est passé, l'utilise, sinon appelle get_etud_decisions_ue() @@ -330,8 +330,8 @@ class NotesTableCompat(ResultatsSemestre): if decisions_ues is False: decisions_ues = self.get_etud_decisions_ue(etudid) if not decisions_ues: - return 0 - return int(sum(d.get("ects", 0) for d in decisions_ues.values())) + 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: """Decision du jury semestre prise pour cet etudiant, ou None s'il n'y en pas eu.