diff --git a/app/but/jury_but_validation_auto.py b/app/but/jury_but_validation_auto.py index 4cfffa58..0208282d 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 72570ae5..5ebd21d7 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