From a02437323b169ded28acf688490302a35a3726a8 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Tue, 28 Jun 2022 11:18:12 +0200 Subject: [PATCH] =?UTF-8?q?Jury=20BUT:=20cas=20ou=20une=20UE=20sans=20nive?= =?UTF-8?q?au=20a=20=C3=A9t=C3=A9=20ajout=C3=A9e=20au=20programme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/but/jury_but.py | 7 ++++--- app/but/jury_but_recap.py | 9 +++++---- app/scodoc/sco_archives.py | 2 +- app/scodoc/sco_edit_ue.py | 2 ++ sco_version.py | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/but/jury_but.py b/app/but/jury_but.py index 848b83d703..39d477bf0c 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -277,15 +277,16 @@ class DecisionsProposeesAnnee(DecisionsProposees): self.decisions_rcue_by_niveau = self.compute_decisions_niveaux() "les décisions rcue associées aux niveau_id" self.dec_rcue_by_ue = self._dec_rcue_by_ue() - "{ ue_id : DecisionsProposeesRCUE }" + "{ ue_id : DecisionsProposeesRCUE } pour toutes les UE associées à un niveau" self.nb_competences = len(self.niveaux_competences) "le nombre de niveaux de compétences à valider cette année" + rcues_avec_niveau = [d.rcue for d in self.decisions_rcue_by_niveau.values()] self.nb_validables = len( - [rcue for rcue in self.rcues_annee if rcue.est_validable()] + [rcue for rcue in rcues_avec_niveau if rcue.est_validable()] ) "le nombre de comp. validables (éventuellement par compensation)" self.nb_rcues_under_8 = len( - [rcue for rcue in self.rcues_annee if not rcue.est_suffisant()] + [rcue for rcue in rcues_avec_niveau if not rcue.est_suffisant()] ) "le nb de comp. sous la barre de 8/20" # année ADM si toutes RCUE validées (sinon PASD) diff --git a/app/but/jury_but_recap.py b/app/but/jury_but_recap.py index 73c7ab1ce3..333fb13bd6 100644 --- a/app/but/jury_but_recap.py +++ b/app/but/jury_but_recap.py @@ -370,10 +370,11 @@ def get_table_jury_but( row.add_nb_rcues_cell(deca) # --- Les RCUEs for rcue in deca.rcues_annee: - dec_rcue = deca.dec_rcue_by_ue[rcue.ue_1.id] - row.add_ue_cells(deca.decisions_ues[rcue.ue_1.id]) - row.add_ue_cells(deca.decisions_ues[rcue.ue_2.id]) - row.add_rcue_cells(dec_rcue) + dec_rcue = deca.dec_rcue_by_ue.get(rcue.ue_1.id) + if dec_rcue is not None: # None si l'UE n'est pas associée à un niveau + row.add_ue_cells(deca.decisions_ues[rcue.ue_1.id]) + row.add_ue_cells(deca.decisions_ues[rcue.ue_2.id]) + row.add_rcue_cells(dec_rcue) # --- Le code annuel existant row.add_cell( "code_annee", diff --git a/app/scodoc/sco_archives.py b/app/scodoc/sco_archives.py index 05f5f00cef..7869bb184f 100644 --- a/app/scodoc/sco_archives.py +++ b/app/scodoc/sco_archives.py @@ -365,7 +365,7 @@ def do_formsemestre_archive( PVArchive.store( archive_id, "Decisions_Jury" + scu.XLSX_SUFFIX, - data.encode(scu.SCO_ENCODING), + data, ) # Classeur bulletins (PDF) data, _ = sco_bulletins_pdf.get_formsemestre_bulletins_pdf( diff --git a/app/scodoc/sco_edit_ue.py b/app/scodoc/sco_edit_ue.py index c6837cc67d..8799176904 100644 --- a/app/scodoc/sco_edit_ue.py +++ b/app/scodoc/sco_edit_ue.py @@ -465,6 +465,8 @@ def ue_edit(ue_id=None, create=False, formation_id=None, default_semestre_idx=No + html_sco_header.sco_footer() ) else: + if not tf[2]: # ceci ne devrait pas arriver + raise ScoValueError("Merci de reprendre l'opération") if create: if not tf[2]["ue_code"]: del tf[2]["ue_code"] diff --git a/sco_version.py b/sco_version.py index e84b08dac2..67757d4be2 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.3.4" +SCOVERSION = "9.3.5" SCONAME = "ScoDoc"