formsemestre_delete_moduleimpls: modernise code

This commit is contained in:
Emmanuel Viennet 2022-09-14 10:35:51 +02:00
parent e374a0e887
commit dae464ea28
1 changed files with 24 additions and 27 deletions

View File

@ -919,7 +919,7 @@ def do_formsemestre_createwithmodules(edit=False):
if ok:
msg_html += "<p>Modification effectuée</p>"
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 += (
'<a href="formsemestre_status?formsemestre_id=%s">retour au tableau de bord</a>'
% formsemestre_id
@ -987,33 +987,30 @@ def formsemestre_delete_moduleimpls(formsemestre_id, module_ids_to_del):
ok = True
msg = []
for module_id in module_ids_to_del:
# get id
moduleimpl_id = sco_moduleimpl.moduleimpl_list(
module = Module.query.get(module_id)
if module is None:
continue # ignore invalid ids
modimpls = ModuleImpl.query.filter_by(
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,
)
]
ok = False
else:
msg += [
"suppression de %s (%s)"
% (mod["code"] or "(module sans code)", mod["titre"] or "")
]
sco_moduleimpl.do_moduleimpl_delete(
moduleimpl_id, formsemestre_id=formsemestre_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
else:
msg += [f"""suppression de {module.code} ({module.titre or ""})"""]
db.session.delete(modimpl)
if ok:
db.session.commit()
else:
db.session.rollback()
return ok, msg