ignore UE et matières dans tri modules BUT (tableau bord sem.)

This commit is contained in:
Emmanuel Viennet 2021-12-10 15:03:29 +01:00
parent 517ee8bd2d
commit e5324e214c

View File

@ -35,6 +35,7 @@ import app.scodoc.notesdb as ndb
from app.scodoc.sco_permissions import Permission
from app.scodoc.sco_exceptions import ScoValueError, AccessDenied
from app import log
from app import models
from app.scodoc import scolog
from app.scodoc import sco_formsemestre
from app.scodoc import sco_cache
@ -124,11 +125,11 @@ def do_moduleimpl_edit(args, formsemestre_id=None, cnx=None):
def moduleimpl_withmodule_list(
moduleimpl_id=None, formsemestre_id=None, module_id=None
):
) -> list:
"""Liste les moduleimpls et ajoute dans chacun
l'UE, la matière et le module auxquels ils appartiennent.
Tri la liste par semestre/UE/numero_matiere/numero_module.
(sauf pour le BUT: ignore UEs et matières dans le tri)
Attention: Cette fonction fait partie de l'API ScoDoc 7 et est publiée.
"""
from app.scodoc import sco_edit_ue
@ -142,6 +143,8 @@ def moduleimpl_withmodule_list(
"module_id": module_id,
}
)
if not modimpls:
return []
ues = {}
matieres = {}
modules = {}
@ -163,17 +166,30 @@ def moduleimpl_withmodule_list(
)[0]
mi["matiere"] = matieres[matiere_id]
# tri par semestre/UE/numero_matiere/numero_module
modimpls.sort(
key=lambda x: (
x["ue"]["numero"],
x["ue"]["ue_id"],
x["matiere"]["numero"],
x["matiere"]["matiere_id"],
x["module"]["numero"],
x["module"]["code"],
mod = modimpls[0]["module"]
formation = models.Formation.query.get(mod["formation_id"])
if formation.is_apc():
# tri par numero_module
modimpls.sort(
key=lambda x: (
x["module"]["numero"],
x["module"]["code"],
)
)
else:
# Formations classiques, avec matières:
# tri par semestre/UE/numero_matiere/numero_module
modimpls.sort(
key=lambda x: (
x["ue"]["numero"],
x["ue"]["ue_id"],
x["matiere"]["numero"],
x["matiere"]["matiere_id"],
x["module"]["numero"],
x["module"]["code"],
)
)
)
return modimpls