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]
# Evaluations dans ce module ?
evals = sco_evaluation_db.do_evaluation_list({"moduleimpl_id": moduleimpl_id})
if evals:
msg += [
'<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>'
% (
mod["code"] or "(module sans code)",
mod["titre"],
len(evals),
moduleimpl_id,
) )
for modimpl in modimpls:
nb_evals = modimpl.evaluations.count()
if nb_evals > 0:
msg += [
f"""<b>impossible de supprimer {module.code} ({module.titre or ""})
car il y a {nb_evals} évaluations définies
(<a href="{
url_for("notes.moduleimpl_status", scodoc_dept=g.scodoc_dept, moduleimpl_id=modimpl.id)
}" class="stdlink">supprimez-les d\'abord</a>)</b>"""
] ]
ok = False ok = False
else: else:
msg += [ msg += [f"""suppression de {module.code} ({module.titre or ""})"""]
"suppression de %s (%s)" db.session.delete(modimpl)
% (mod["code"] or "(module sans code)", mod["titre"] or "") if ok:
] db.session.commit()
sco_moduleimpl.do_moduleimpl_delete( else:
moduleimpl_id, formsemestre_id=formsemestre_id db.session.rollback()
)
return ok, msg return ok, msg