diff --git a/app/but/jury_but_recap.py b/app/but/jury_but_recap.py index a0a74b3134..dc30f4f3a9 100644 --- a/app/but/jury_but_recap.py +++ b/app/but/jury_but_recap.py @@ -60,6 +60,16 @@ def formsemestre_saisie_jury_but( if formsemestre2.semestre_id % 2 != 0: raise ScoValueError("Cette page ne fonctionne que sur les semestres pairs") + if formsemestre2.formation.referentiel_competence is None: + raise ScoValueError( + """ +

Pas de référentiel de compétences associé à la formation !

+

Pour associer un référentiel, passer par le menu Semestre / + Voir la formation... et suivre le lien "associer à un référentiel + de compétences" + """ + ) + rows, titles, column_ids = get_table_jury_but( formsemestre2, readonly=readonly, mode=mode ) diff --git a/app/models/but_refcomp.py b/app/models/but_refcomp.py index 5db968e3db..04fed31883 100644 --- a/app/models/but_refcomp.py +++ b/app/models/but_refcomp.py @@ -14,6 +14,7 @@ import sqlalchemy from app import db from app.scodoc.sco_utils import ModuleType +from app.scodoc.sco_exceptions import ScoValueError # from https://stackoverflow.com/questions/2537471/method-of-iterating-over-sqlalchemy-models-defined-columns @@ -280,6 +281,10 @@ class ApcNiveau(db.Model, XMLModel): """ if annee not in {1, 2, 3}: raise ValueError("annee invalide pour un parcours BUT") + if referentiel_competence is None: + raise ScoValueError( + "pas de référentiel de compétences associé à la formation !" + ) annee_formation = f"BUT{annee}" if parcour is None: return ApcNiveau.query.filter( diff --git a/sco_version.py b/sco_version.py index c0169257c8..d686c66dcb 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.3.0b" +SCOVERSION = "9.3.1" SCONAME = "ScoDoc"