From da0388f8b1282fcbcaee4d0e0ff7dbde35fd97ad Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Tue, 1 Nov 2022 19:25:15 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20synchro=20groupes=20de=20parcou?= =?UTF-8?q?rs=20/=20parcours=20du=20formsemestre.=20Closes=20#508.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/formsemestre.py | 17 +++++++++++++++++ app/scodoc/sco_formsemestre_edit.py | 2 ++ 2 files changed, 19 insertions(+) diff --git a/app/models/formsemestre.py b/app/models/formsemestre.py index 71b6d6050..eabf7f098 100644 --- a/app/models/formsemestre.py +++ b/app/models/formsemestre.py @@ -597,6 +597,23 @@ class FormSemestre(db.Model): ).first() if not group: partition.groups.append(GroupDescr(group_name=parcour.code)) + db.session.flush() + # S'il reste des groupes de parcours qui ne sont plus dans le semestre + # et qui n'ont pas d'inscrits, supprime-les. + for group in GroupDescr.query.filter_by(partition_id=partition.id): + if (group.group_name not in (p.code for p in self.parcours)) and ( + len( + [ + inscr + for inscr in self.inscriptions + if inscr.parcour.code == group.group_name + ] + ) + == 0 + ): + flash(f"suppression du groupe de parcours {group.group_name}") + db.session.delete(group) + db.session.commit() def update_inscriptions_parcours_from_groups(self) -> None: diff --git a/app/scodoc/sco_formsemestre_edit.py b/app/scodoc/sco_formsemestre_edit.py index 80fdf3d7f..bd396ad16 100644 --- a/app/scodoc/sco_formsemestre_edit.py +++ b/app/scodoc/sco_formsemestre_edit.py @@ -931,6 +931,8 @@ def do_formsemestre_createwithmodules(edit=False, formsemestre: FormSemestre = N db.session.commit() # --- Crée ou met à jour les groupes de parcours BUT formsemestre.setup_parcours_groups() + # peut être nécessaire dans certains cas: + formsemestre.update_inscriptions_parcours_from_groups() # --- Fin if edit: if msg: