From a9cfaef38130dae91cb374b020d7ba327452d650 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 13 Apr 2023 08:40:15 +0200 Subject: [PATCH] =?UTF-8?q?Modifie=20etud=5Fparcours=5Fues=5Fids:=20si=20l?= =?UTF-8?q?'=C3=A9tudiant=20pas=20inscrit=20=C3=A0=20un=20parcours,=20pren?= =?UTF-8?q?d=20toutes=20les=20UEs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/comp/res_but.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/app/comp/res_but.py b/app/comp/res_but.py index 7e1d481af..b9efebabf 100644 --- a/app/comp/res_but.py +++ b/app/comp/res_but.py @@ -273,7 +273,7 @@ class ResultatsSemestreBUT(NotesTableCompat): Se base sur le parcours dans ce semestre, et le référentiel de compétences. Note: il n'est pas nécessairement inscrit à toutes ces UEs. Ensemble vide si pas de référentiel. - + Si l'étudiant n'est pas inscrit dans un parcours, toutes les UEs du semestre. La requête est longue, les ue_ids par parcour sont donc cachés. """ parcour_id = self.etuds_parcour_id[etudid] @@ -283,16 +283,19 @@ class ResultatsSemestreBUT(NotesTableCompat): ref_comp = self.formsemestre.formation.referentiel_competence if ref_comp is None: return set() - parcour: ApcParcours = ApcParcours.query.get(parcour_id) - annee = (self.formsemestre.semestre_id + 1) // 2 - niveaux = ApcNiveau.niveaux_annee_de_parcours(parcour, annee, ref_comp) - # Les UEs du formsemestre associées à ces niveaux: - ues_parcour = self.formsemestre.formation.query_ues_parcour(parcour) - ues_ids = set() - for niveau in niveaux: - ue = ues_parcour.filter(UniteEns.niveau_competence == niveau).first() - if ue: - ues_ids.add(ue.id) + if parcour_id is None: + ues_ids = {ue.id for ue in self.ues} + else: + parcour: ApcParcours = ApcParcours.query.get(parcour_id) + annee = (self.formsemestre.semestre_id + 1) // 2 + niveaux = ApcNiveau.niveaux_annee_de_parcours(parcour, annee, ref_comp) + # Les UEs du formsemestre associées à ces niveaux: + ues_parcour = self.formsemestre.formation.query_ues_parcour(parcour) + ues_ids = set() + for niveau in niveaux: + ue = ues_parcour.filter(UniteEns.niveau_competence == niveau).first() + if ue: + ues_ids.add(ue.id) # memoize self.ues_ids_by_parcour[parcour_id] = ues_ids