Diplôme BUT sur tableau recap. jury. Closes #929.

This commit is contained in:
Emmanuel Viennet 2024-06-19 18:51:02 +02:00
parent 070c9ea36f
commit 3163e00ff5
2 changed files with 40 additions and 20 deletions

View File

@ -55,17 +55,23 @@ class SituationEtudCursusBUT(sco_cursus_dut.SituationEtudCursusClassic):
def parcours_validated(self):
"True si le parcours (ici diplôme BUT) est validé"
# Si année 3 validée, ok
return any(
sco_codes.code_annee_validant(v.code)
for v in ApcValidationAnnee.query.filter_by(
etudid=self.etud.id,
ordre=3,
referentiel_competence_id=self.cur_sem.formation.referentiel_competence_id,
)
return but_parcours_validated(
self.etud.id, self.cur_sem.formation.referentiel_competence_id
)
def but_parcours_validated(etudid: int, referentiel_competence_id: int) -> bool:
"""Détermine si le parcours BUT est validé:
ne regarde que si une validation BUT3 est enregistrée
"""
return any(
sco_codes.code_annee_validant(v.code)
for v in ApcValidationAnnee.query.filter_by(
etudid=etudid, ordre=3, referentiel_competence_id=referentiel_competence_id
)
)
class EtudCursusBUT:
"""L'état de l'étudiant dans son cursus BUT
Liste des niveaux validés/à valider

View File

@ -84,6 +84,7 @@ class TableJury(TableRecap):
autorisations = res.get_autorisations_inscription()
if res.is_apc:
validations_annee = res.get_validations_annee()
for row in self.rows:
etud = row.etud
if not res.is_apc:
@ -103,18 +104,31 @@ class TableJury(TableRecap):
self.foot_title_row.cells["jury_code_sem"].target_attrs[
"title"
] = """Code jury sur le semestre"""
# Autorisations inscription
row.add_cell(
"autorisations_inscription",
"Passage",
(
", ".join("S" + str(i) for i in sorted(autorisations[etud.id]))
if etud.id in autorisations
else ""
),
group="jury_code_sem",
classes=["recorded_code"],
)
# Autorisations inscription ou diplôme BUT S6
if res.is_apc and res.formsemestre.semestre_id == 6:
# on ne vérifie le diplôme que dans ce cas pour ne pas ralentir
if cursus_but.but_parcours_validated(
etud.id, res.formsemestre.formation.referentiel_competence_id
):
row.add_cell(
"autorisations_inscription",
"Passage",
"Diplôme obtenu",
group="jury_code_sem",
classes=["recorded_code"],
)
else:
row.add_cell(
"autorisations_inscription",
"Passage",
(
", ".join("S" + str(i) for i in sorted(autorisations[etud.id]))
if etud.id in autorisations
else ""
),
group="jury_code_sem",
classes=["recorded_code"],
)
if res.is_apc: # BUT
validation_annee = validations_annee.get(etud.id, None)
row.add_cell(