présentation UE/modules en mode BUT

This commit is contained in:
Emmanuel Viennet 2021-12-12 12:32:21 +01:00
parent 44d2ffb240
commit abc7fb3378
3 changed files with 28 additions and 10 deletions

View File

@ -598,7 +598,9 @@ def formsemestre_description_table(formsemestre_id, with_evals=False):
use_ue_coefs = sco_preferences.get_preference("use_ue_coefs", formsemestre_id)
F = sco_formations.formation_list(args={"formation_id": sem["formation_id"]})[0]
parcours = sco_codes_parcours.get_parcours_from_code(F["type_parcours"])
Mlist = sco_moduleimpl.moduleimpl_withmodule_list(formsemestre_id=formsemestre_id)
Mlist = sco_moduleimpl.moduleimpl_withmodule_list(
formsemestre_id=formsemestre_id, sort_by_ue=True
)
R = []
sum_coef = 0

View File

@ -124,12 +124,14 @@ def do_moduleimpl_edit(args, formsemestre_id=None, cnx=None):
def moduleimpl_withmodule_list(
moduleimpl_id=None, formsemestre_id=None, module_id=None
moduleimpl_id=None, formsemestre_id=None, module_id=None, sort_by_ue=False
) -> 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)
Tri la liste par:
- pour les formations classiques: semestre/UE/numero_matiere/numero_module;
- pour le BUT: ignore UEs sauf si sort_by_ue 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
@ -171,12 +173,24 @@ def moduleimpl_withmodule_list(
if formation.is_apc():
# tri par numero_module
modimpls.sort(
key=lambda x: (
x["module"]["numero"],
x["module"]["code"],
if sort_by_ue:
modimpls.sort(
key=lambda x: (
x["ue"]["numero"],
x["ue"]["ue_id"],
x["module"]["module_type"],
x["module"]["numero"],
x["module"]["code"],
)
)
else:
modimpls.sort(
key=lambda x: (
x["module"]["module_type"],
x["module"]["numero"],
x["module"]["code"],
)
)
)
else:
# Formations classiques, avec matières:
# tri par semestre/UE/numero_matiere/numero_module

View File

@ -263,7 +263,9 @@ def moduleimpl_inscriptions_stats(formsemestre_id):
can_change = authuser.has_permission(Permission.ScoEtudInscrit) and sem["etat"]
# Liste des modules
Mlist = sco_moduleimpl.moduleimpl_withmodule_list(formsemestre_id=formsemestre_id)
Mlist = sco_moduleimpl.moduleimpl_withmodule_list(
formsemestre_id=formsemestre_id, sort_by_ue=True
)
# Decrit les inscriptions aux modules:
commons = [] # modules communs a tous les etuds du semestre
options = [] # modules ou seuls quelques etudiants sont inscrits