Modifie etud_parcours_ues_ids: si l'étudiant pas inscrit à un parcours, prend toutes les UEs

This commit is contained in:
Emmanuel Viennet 2023-04-13 08:40:15 +02:00 committed by iziram
parent 4cd3b71cfc
commit ffca42917d

View File

@ -273,7 +273,7 @@ class ResultatsSemestreBUT(NotesTableCompat):
Se base sur le parcours dans ce semestre, et le référentiel de compétences. 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. Note: il n'est pas nécessairement inscrit à toutes ces UEs.
Ensemble vide si pas de référentiel. 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. La requête est longue, les ue_ids par parcour sont donc cachés.
""" """
parcour_id = self.etuds_parcour_id[etudid] parcour_id = self.etuds_parcour_id[etudid]
@ -283,16 +283,19 @@ class ResultatsSemestreBUT(NotesTableCompat):
ref_comp = self.formsemestre.formation.referentiel_competence ref_comp = self.formsemestre.formation.referentiel_competence
if ref_comp is None: if ref_comp is None:
return set() return set()
parcour: ApcParcours = ApcParcours.query.get(parcour_id) if parcour_id is None:
annee = (self.formsemestre.semestre_id + 1) // 2 ues_ids = {ue.id for ue in self.ues}
niveaux = ApcNiveau.niveaux_annee_de_parcours(parcour, annee, ref_comp) else:
# Les UEs du formsemestre associées à ces niveaux: parcour: ApcParcours = ApcParcours.query.get(parcour_id)
ues_parcour = self.formsemestre.formation.query_ues_parcour(parcour) annee = (self.formsemestre.semestre_id + 1) // 2
ues_ids = set() niveaux = ApcNiveau.niveaux_annee_de_parcours(parcour, annee, ref_comp)
for niveau in niveaux: # Les UEs du formsemestre associées à ces niveaux:
ue = ues_parcour.filter(UniteEns.niveau_competence == niveau).first() ues_parcour = self.formsemestre.formation.query_ues_parcour(parcour)
if ue: ues_ids = set()
ues_ids.add(ue.id) for niveau in niveaux:
ue = ues_parcour.filter(UniteEns.niveau_competence == niveau).first()
if ue:
ues_ids.add(ue.id)
# memoize # memoize
self.ues_ids_by_parcour[parcour_id] = ues_ids self.ues_ids_by_parcour[parcour_id] = ues_ids