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
parent 8e7b0839d6
commit a9cfaef381

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