diff --git a/app/models/but_refcomp.py b/app/models/but_refcomp.py index 2cb1145d..73ddf9f7 100644 --- a/app/models/but_refcomp.py +++ b/app/models/but_refcomp.py @@ -471,9 +471,16 @@ class ApcNiveau(db.Model, XMLModel): for pn in parcour_niveaux ] else: - niveaux: list[ApcNiveau] = competence.niveaux.filter_by( - annee=f"BUT{int(annee)}" - ).all() + niveaux: list[ApcNiveau] = ( + ApcNiveau.query.filter_by(annee=f"BUT{int(annee)}") + .join(ApcCompetence) + .filter_by(id=competence.id) + .join(ApcParcoursNiveauCompetence) + .filter(ApcParcoursNiveauCompetence.niveau == ApcNiveau.ordre) + .join(ApcAnneeParcours) + .filter_by(parcours_id=parcour.id) + .all() + ) _cache[key] = niveaux return niveaux