formsemestre_delete_moduleimpls: modernise code

This commit is contained in:
Emmanuel Viennet 2022-09-14 10:35:51 +02:00
parent e374a0e887
commit dae464ea28

View File

@ -919,7 +919,7 @@ def do_formsemestre_createwithmodules(edit=False):
if ok: if ok:
msg_html += "<p>Modification effectuée</p>" msg_html += "<p>Modification effectuée</p>"
else: else:
msg_html += "<p>Modification effectuée (<b>mais modules cités non supprimés</b>)</p>" msg_html += "<p>Modules non modifiés</p>"
msg_html += ( msg_html += (
'<a href="formsemestre_status?formsemestre_id=%s">retour au tableau de bord</a>' '<a href="formsemestre_status?formsemestre_id=%s">retour au tableau de bord</a>'
% formsemestre_id % formsemestre_id
@ -987,33 +987,30 @@ def formsemestre_delete_moduleimpls(formsemestre_id, module_ids_to_del):
ok = True ok = True
msg = [] msg = []
for module_id in module_ids_to_del: for module_id in module_ids_to_del:
# get id module = Module.query.get(module_id)
moduleimpl_id = sco_moduleimpl.moduleimpl_list( if module is None:
continue # ignore invalid ids
modimpls = ModuleImpl.query.filter_by(
formsemestre_id=formsemestre_id, module_id=module_id formsemestre_id=formsemestre_id, module_id=module_id
)[0]["moduleimpl_id"] )
mod = sco_edit_module.module_list({"module_id": module_id})[0] for modimpl in modimpls:
# Evaluations dans ce module ? nb_evals = modimpl.evaluations.count()
evals = sco_evaluation_db.do_evaluation_list({"moduleimpl_id": moduleimpl_id}) if nb_evals > 0:
if evals: msg += [
msg += [ f"""<b>impossible de supprimer {module.code} ({module.titre or ""})
'<b>impossible de supprimer %s (%s) car il y a %d évaluations définies (<a href="moduleimpl_status?moduleimpl_id=%s" class="stdlink">supprimer les d\'abord</a>)</b>' car il y a {nb_evals} évaluations définies
% ( (<a href="{
mod["code"] or "(module sans code)", url_for("notes.moduleimpl_status", scodoc_dept=g.scodoc_dept, moduleimpl_id=modimpl.id)
mod["titre"], }" class="stdlink">supprimez-les d\'abord</a>)</b>"""
len(evals), ]
moduleimpl_id, ok = False
) else:
] msg += [f"""suppression de {module.code} ({module.titre or ""})"""]
ok = False db.session.delete(modimpl)
else: if ok:
msg += [ db.session.commit()
"suppression de %s (%s)" else:
% (mod["code"] or "(module sans code)", mod["titre"] or "") db.session.rollback()
]
sco_moduleimpl.do_moduleimpl_delete(
moduleimpl_id, formsemestre_id=formsemestre_id
)
return ok, msg return ok, msg