forked from ScoDoc/ScoDoc
Fix: association d'un formsemetre à une nouvelle formation si des éléments font référence à des UEs qui ne sont plus dans la formation du semestre (sic)
This commit is contained in:
parent
1de265536e
commit
814a3802e9
@ -200,7 +200,7 @@ def do_formsemestres_associate_new_version(
|
||||
|
||||
# New formation:
|
||||
(
|
||||
formation_id,
|
||||
new_formation_id,
|
||||
modules_old2new,
|
||||
ues_old2new,
|
||||
) = sco_formations.formation_create_new_version(formation_id, redirect=False)
|
||||
@ -219,7 +219,7 @@ def do_formsemestres_associate_new_version(
|
||||
# re-associate
|
||||
for formsemestre_id in formsemestre_ids:
|
||||
formsemestre = FormSemestre.get_formsemestre(formsemestre_id)
|
||||
formsemestre.formation_id = formation_id
|
||||
formsemestre.formation_id = new_formation_id
|
||||
db.session.add(formsemestre)
|
||||
_reassociate_moduleimpls(formsemestre, ues_old2new, modules_old2new)
|
||||
|
||||
@ -246,8 +246,12 @@ def _reassociate_moduleimpls(
|
||||
Evaluation.moduleimpl_id == ModuleImpl.id,
|
||||
ModuleImpl.formsemestre_id == formsemestre.id,
|
||||
):
|
||||
poids.ue_id = ues_old2new[poids.ue_id]
|
||||
db.session.add(poids)
|
||||
if poids.ue_id in ues_old2new:
|
||||
poids.ue_id = ues_old2new[poids.ue_id]
|
||||
db.session.add(poids)
|
||||
else:
|
||||
# poids vers une UE qui n'est pas ou plus dans notre formation
|
||||
db.session.delete(poids)
|
||||
|
||||
# update decisions:
|
||||
for event in ScolarEvent.query.filter_by(formsemestre_id=formsemestre.id):
|
||||
@ -258,8 +262,9 @@ def _reassociate_moduleimpls(
|
||||
for validation in ScolarFormSemestreValidation.query.filter_by(
|
||||
formsemestre_id=formsemestre.id
|
||||
):
|
||||
if validation.ue_id is not None:
|
||||
if (validation.ue_id is not None) and validation.ue_id in ues_old2new:
|
||||
validation.ue_id = ues_old2new[validation.ue_id]
|
||||
# si l'UE n'est pas ou plus dans notre formation, laisse.
|
||||
db.session.add(validation)
|
||||
|
||||
db.session.commit()
|
||||
|
Loading…
Reference in New Issue
Block a user