Fix: choix du parcours sur création/édition Module

This commit is contained in:
Emmanuel Viennet 2024-09-03 08:24:09 +02:00
parent 0a1e16e81a
commit ad754ebd24

View File

@ -421,7 +421,7 @@ def module_edit(
else: else:
modules = formation.modules.all() modules = formation.modules.all()
if modules: if modules:
default_num = max([m.numero or 0 for m in modules]) + 10 default_num = max(m.numero or 0 for m in modules) + 10
else: else:
default_num = 10 default_num = 10
@ -767,7 +767,6 @@ def module_edit(
module_dict["semestre_id"] = 1 module_dict["semestre_id"] = 1
else: else:
module_dict["semestre_id"] = module.ue.semestre_idx module_dict["semestre_id"] = module.ue.semestre_idx
tf = TrivialFormulator( tf = TrivialFormulator(
request.base_url, request.base_url,
scu.get_request_args(), scu.get_request_args(),
@ -809,7 +808,7 @@ def module_edit(
else "" else ""
), ),
) )
elif tf[0] == -1: if tf[0] == -1:
return flask.redirect( return flask.redirect(
url_for( url_for(
"notes.ue_table", "notes.ue_table",
@ -818,11 +817,12 @@ def module_edit(
semestre_idx=orig_semestre_idx, semestre_idx=orig_semestre_idx,
) )
) )
else:
if isinstance(tf[2]["numero"], str): if isinstance(tf[2]["numero"], str):
tf[2]["numero"] = tf[2]["numero"].strip() tf[2]["numero"] = tf[2]["numero"].strip()
if not isinstance(tf[2]["numero"], int) and not tf[2]["numero"]: if not isinstance(tf[2]["numero"], int) and not tf[2]["numero"]:
tf[2]["numero"] = tf[2]["numero"] or default_num tf[2]["numero"] = tf[2]["numero"] or default_num
# Les parcours sont affectés ensuite
form_parcours = tf[2].pop("parcours", [])
if create: if create:
if not matiere_id: if not matiere_id:
# formulaire avec choix UE de rattachement # formulaire avec choix UE de rattachement
@ -869,13 +869,13 @@ def module_edit(
# #
do_module_edit(tf[2]) do_module_edit(tf[2])
# Modifie les parcours # Modifie les parcours
if ("parcours" in tf[2]) and formation.referentiel_competence: if form_parcours is not None and formation.referentiel_competence:
if "-1" in tf[2]["parcours"]: # "tous" if "-1" in form_parcours: # "tous"
module.parcours = formation.referentiel_competence.parcours.all() module.parcours = formation.referentiel_competence.parcours.all()
else: else:
module.parcours = [ module.parcours = [
db.session.get(ApcParcours, int(parcour_id_str)) db.session.get(ApcParcours, int(parcour_id_str))
for parcour_id_str in tf[2]["parcours"] for parcour_id_str in form_parcours
] ]
# Modifie les AC # Modifie les AC
if "app_critiques" in tf[2]: if "app_critiques" in tf[2]: