From 3121a6d54cd043e1bf7ba338f3d1d17884d7c883 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 13 Jan 2023 08:17:59 -0300 Subject: [PATCH] BUT: dispenses d'UE / jury avec RCUE incomplet --- app/but/jury_but.py | 13 +++++++------ app/scodoc/sco_moduleimpl_inscriptions.py | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/but/jury_but.py b/app/but/jury_but.py index bf0e75eb..5e69b98c 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -581,14 +581,14 @@ class DecisionsProposeesAnnee(DecisionsProposees): ) ues_impair_sans_rcue.discard(ue_impair.id) break - if rcue is None and not self.a_cheval: - raise NoRCUEError(deca=self, ue=ue_pair) + # if rcue is None and not self.a_cheval: + # raise NoRCUEError(deca=self, ue=ue_pair) if rcue is not None: rcues_annee.append(rcue) # Si jury annuel (pas à cheval), on doit avoir tous les RCUEs: - if len(ues_impair_sans_rcue) > 0 and not self.a_cheval: - ue = UniteEns.query.get(ues_impair_sans_rcue.pop()) - raise NoRCUEError(deca=self, ue=ue) + # if len(ues_impair_sans_rcue) > 0 and not self.a_cheval: + # ue = UniteEns.query.get(ues_impair_sans_rcue.pop()) + # raise NoRCUEError(deca=self, ue=ue) return rcues_annee def compute_decisions_niveaux(self) -> dict[int, "DecisionsProposeesRCUE"]: @@ -911,7 +911,7 @@ def list_ue_parcour_etud( formsemestre: FormSemestre, etud: Identite, res: ResultatsSemestreBUT ) -> tuple[ApcParcours, list[UniteEns]]: """Parcour dans lequel l'étudiant est inscrit, - et liste des UEs à valider pour ce semestre + et liste des UEs à valider pour ce semestre (sans les UE "dispensées") """ if res.etuds_parcour_id[etud.id] is None: parcour = None @@ -926,6 +926,7 @@ def list_ue_parcour_etud( .order_by(UniteEns.numero) .all() ) + ues = [ue for ue in ues if (etud.id, ue.id) not in res.dispense_ues] return parcour, ues diff --git a/app/scodoc/sco_moduleimpl_inscriptions.py b/app/scodoc/sco_moduleimpl_inscriptions.py index 27d7ff3e..115337b2 100644 --- a/app/scodoc/sco_moduleimpl_inscriptions.py +++ b/app/scodoc/sco_moduleimpl_inscriptions.py @@ -554,8 +554,8 @@ def _list_but_ue_inscriptions(res: NotesTableCompat, read_only: bool = True) -> """
- L'inscription ou désinscription aux UE du BUT n'affecte pas les inscriptions aux modules - mais permet de "dispenser" un étudiant de suivre certaines UE de son parcours. + L'inscription ou désinscription aux UEs du BUT n'affecte pas les inscriptions aux modules + mais permet de "dispenser" un étudiant de suivre certaines UEs de son parcours. Il peut s'agit d'étudiants redoublants ayant déjà acquis l'UE, ou d'autres cas particuliers. La dispense d'UE est réversible à tout moment (avant le jury de fin de semestre) et n'affecte pas les notes saisies.