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:
|
# New formation:
|
||||||
(
|
(
|
||||||
formation_id,
|
new_formation_id,
|
||||||
modules_old2new,
|
modules_old2new,
|
||||||
ues_old2new,
|
ues_old2new,
|
||||||
) = sco_formations.formation_create_new_version(formation_id, redirect=False)
|
) = sco_formations.formation_create_new_version(formation_id, redirect=False)
|
||||||
@ -219,7 +219,7 @@ def do_formsemestres_associate_new_version(
|
|||||||
# re-associate
|
# re-associate
|
||||||
for formsemestre_id in formsemestre_ids:
|
for formsemestre_id in formsemestre_ids:
|
||||||
formsemestre = FormSemestre.get_formsemestre(formsemestre_id)
|
formsemestre = FormSemestre.get_formsemestre(formsemestre_id)
|
||||||
formsemestre.formation_id = formation_id
|
formsemestre.formation_id = new_formation_id
|
||||||
db.session.add(formsemestre)
|
db.session.add(formsemestre)
|
||||||
_reassociate_moduleimpls(formsemestre, ues_old2new, modules_old2new)
|
_reassociate_moduleimpls(formsemestre, ues_old2new, modules_old2new)
|
||||||
|
|
||||||
@ -246,8 +246,12 @@ def _reassociate_moduleimpls(
|
|||||||
Evaluation.moduleimpl_id == ModuleImpl.id,
|
Evaluation.moduleimpl_id == ModuleImpl.id,
|
||||||
ModuleImpl.formsemestre_id == formsemestre.id,
|
ModuleImpl.formsemestre_id == formsemestre.id,
|
||||||
):
|
):
|
||||||
poids.ue_id = ues_old2new[poids.ue_id]
|
if poids.ue_id in ues_old2new:
|
||||||
db.session.add(poids)
|
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:
|
# update decisions:
|
||||||
for event in ScolarEvent.query.filter_by(formsemestre_id=formsemestre.id):
|
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(
|
for validation in ScolarFormSemestreValidation.query.filter_by(
|
||||||
formsemestre_id=formsemestre.id
|
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]
|
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.add(validation)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
Loading…
Reference in New Issue
Block a user