From 3c8b088d5eba9224b61bffeb1e51543d8709e697 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 22 Mar 2024 21:56:52 +0100 Subject: [PATCH] =?UTF-8?q?Jury=20BUT=20auto:=20avertissement=20si=20semes?= =?UTF-8?q?tres=20pairs=20non=20bloqu=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/but/jury_but_validation_auto.py | 16 +++++++--- .../but/formsemestre_validation_auto_but.j2 | 16 +++++++++- app/views/notes.py | 31 +++++++++++++++++-- 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/app/but/jury_but_validation_auto.py b/app/but/jury_but_validation_auto.py index 4cfffa581..0208282d9 100644 --- a/app/but/jury_but_validation_auto.py +++ b/app/but/jury_but_validation_auto.py @@ -16,8 +16,8 @@ from app.scodoc.sco_exceptions import ScoValueError def formsemestre_validation_auto_but( - formsemestre: FormSemestre, only_adm: bool = True -) -> int: + formsemestre: FormSemestre, only_adm: bool = True, dry_run=False +) -> tuple[int, list[jury_but.DecisionsProposeesAnnee]]: """Calcul automatique des décisions de jury sur une "année" BUT. - N'enregistre jamais de décisions de l'année scolaire précédente, même @@ -27,16 +27,22 @@ def formsemestre_validation_auto_but( En revanche, si only_adm est faux, on enregistre la première décision proposée par ScoDoc (mode à n'utiliser que pour les tests unitaires vérifiant la saisie des jurys) - Returns: nombre d'étudiants pour lesquels on a enregistré au moins un code. + Returns: + - En mode normal, (nombre d'étudiants pour lesquels on a enregistré au moins un code, []]) + - En mode dry_run, (0, list[DecisionsProposeesAnnee]) """ if not formsemestre.formation.is_apc(): raise ScoValueError("fonction réservée aux formations BUT") nb_etud_modif = 0 + decas = [] with sco_cache.DeferredSemCacheManager(): for etudid in formsemestre.etuds_inscriptions: etud = Identite.get_etud(etudid) deca = jury_but.DecisionsProposeesAnnee(etud, formsemestre) - nb_etud_modif += deca.record_all(only_validantes=only_adm) + if not dry_run: + nb_etud_modif += deca.record_all(only_validantes=only_adm) + else: + decas.append(deca) db.session.commit() ScolarNews.add( @@ -49,4 +55,4 @@ def formsemestre_validation_auto_but( formsemestre_id=formsemestre.id, ), ) - return nb_etud_modif + return nb_etud_modif, decas diff --git a/app/templates/but/formsemestre_validation_auto_but.j2 b/app/templates/but/formsemestre_validation_auto_but.j2 index 72570ae53..5ebd21d72 100644 --- a/app/templates/but/formsemestre_validation_auto_but.j2 +++ b/app/templates/but/formsemestre_validation_auto_but.j2 @@ -12,7 +12,7 @@

Calcul automatique des décisions de jury du BUT