Corrige calcul liste UEs BUT: cas où le semestre n'est déclaré dans aucun parcours.

This commit is contained in:
Emmanuel Viennet 2022-12-13 17:17:51 -03:00
parent 409ad75096
commit 3d11ae7a08
2 changed files with 11 additions and 6 deletions

View File

@ -222,21 +222,26 @@ class ResultatsSemestreBUT(NotesTableCompat):
return pd.DataFrame(
1.0, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float
)
# matrice de NaN, inscrits par défaut à aucune UE:
# matrice de NaN: inscrits par défaut à AUCUNE UE:
ues_inscr_parcours_df = pd.DataFrame(
np.nan, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float
np.nan, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float # XXX
)
# Construit pour chaque parcours du référentiel l'ensemble de ses UE
# (considère aussi le cas des semestres sans parcours: None)
ue_by_parcours = {} # parcours_id : {ue_id:0|1}
for parcour in self.formsemestre.formation.referentiel_competence.parcours:
ue_by_parcours[parcour.id] = {
for (
parcour
) in self.formsemestre.formation.referentiel_competence.parcours.all() + [None]:
ue_by_parcours[None if parcour is None else parcour.id] = {
ue.id: 1.0
for ue in self.formsemestre.formation.query_ues_parcour(
parcour
).filter_by(semestre_idx=self.formsemestre.semestre_id)
}
#
for etudid in etuds_parcour_id:
parcour_id = etuds_parcour_id[etudid]
if parcour_id is not None and parcour_id in ue_by_parcours:
if parcour_id in ue_by_parcours:
if ue_by_parcours[parcour_id]:
ues_inscr_parcours_df.loc[etudid] = ue_by_parcours[parcour_id]
return ues_inscr_parcours_df

View File

@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
SCOVERSION = "9.4.13"
SCOVERSION = "9.4.14"
SCONAME = "ScoDoc"