Améliore synchro groupes de parcours / parcours du formsemestre. Closes #508.

This commit is contained in:
Emmanuel Viennet 2022-11-01 19:25:15 +01:00
parent 772ea2941b
commit da0388f8b1
2 changed files with 19 additions and 0 deletions

View File

@ -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:

View File

@ -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: