Jury BUT: cas ou une UE sans niveau a été ajoutée au programme

This commit is contained in:
Emmanuel Viennet 2022-06-28 11:18:12 +02:00
parent a204e67efc
commit a02437323b
5 changed files with 13 additions and 9 deletions

View File

@ -277,15 +277,16 @@ class DecisionsProposeesAnnee(DecisionsProposees):
self.decisions_rcue_by_niveau = self.compute_decisions_niveaux() self.decisions_rcue_by_niveau = self.compute_decisions_niveaux()
"les décisions rcue associées aux niveau_id" "les décisions rcue associées aux niveau_id"
self.dec_rcue_by_ue = self._dec_rcue_by_ue() 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) self.nb_competences = len(self.niveaux_competences)
"le nombre de niveaux de compétences à valider cette année" "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( 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)" "le nombre de comp. validables (éventuellement par compensation)"
self.nb_rcues_under_8 = len( 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" "le nb de comp. sous la barre de 8/20"
# année ADM si toutes RCUE validées (sinon PASD) # année ADM si toutes RCUE validées (sinon PASD)

View File

@ -370,10 +370,11 @@ def get_table_jury_but(
row.add_nb_rcues_cell(deca) row.add_nb_rcues_cell(deca)
# --- Les RCUEs # --- Les RCUEs
for rcue in deca.rcues_annee: for rcue in deca.rcues_annee:
dec_rcue = deca.dec_rcue_by_ue[rcue.ue_1.id] dec_rcue = deca.dec_rcue_by_ue.get(rcue.ue_1.id)
row.add_ue_cells(deca.decisions_ues[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_2.id]) row.add_ue_cells(deca.decisions_ues[rcue.ue_1.id])
row.add_rcue_cells(dec_rcue) row.add_ue_cells(deca.decisions_ues[rcue.ue_2.id])
row.add_rcue_cells(dec_rcue)
# --- Le code annuel existant # --- Le code annuel existant
row.add_cell( row.add_cell(
"code_annee", "code_annee",

View File

@ -365,7 +365,7 @@ def do_formsemestre_archive(
PVArchive.store( PVArchive.store(
archive_id, archive_id,
"Decisions_Jury" + scu.XLSX_SUFFIX, "Decisions_Jury" + scu.XLSX_SUFFIX,
data.encode(scu.SCO_ENCODING), data,
) )
# Classeur bulletins (PDF) # Classeur bulletins (PDF)
data, _ = sco_bulletins_pdf.get_formsemestre_bulletins_pdf( data, _ = sco_bulletins_pdf.get_formsemestre_bulletins_pdf(

View File

@ -465,6 +465,8 @@ def ue_edit(ue_id=None, create=False, formation_id=None, default_semestre_idx=No
+ html_sco_header.sco_footer() + html_sco_header.sco_footer()
) )
else: else:
if not tf[2]: # ceci ne devrait pas arriver
raise ScoValueError("Merci de reprendre l'opération")
if create: if create:
if not tf[2]["ue_code"]: if not tf[2]["ue_code"]:
del tf[2]["ue_code"] del tf[2]["ue_code"]

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "9.3.4" SCOVERSION = "9.3.5"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"