From abc7fb3378484fbce0920a8174a675114ac23e70 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sun, 12 Dec 2021 12:32:21 +0100 Subject: [PATCH] =?UTF-8?q?pr=C3=A9sentation=20UE/modules=20en=20mode=20BU?= =?UTF-8?q?T?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scodoc/sco_formsemestre_status.py | 4 ++- app/scodoc/sco_moduleimpl.py | 30 +++++++++++++++++------ app/scodoc/sco_moduleimpl_inscriptions.py | 4 ++- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py index b3d4015b1..49aef5683 100644 --- a/app/scodoc/sco_formsemestre_status.py +++ b/app/scodoc/sco_formsemestre_status.py @@ -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 diff --git a/app/scodoc/sco_moduleimpl.py b/app/scodoc/sco_moduleimpl.py index cd8845646..ac490bd23 100644 --- a/app/scodoc/sco_moduleimpl.py +++ b/app/scodoc/sco_moduleimpl.py @@ -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 diff --git a/app/scodoc/sco_moduleimpl_inscriptions.py b/app/scodoc/sco_moduleimpl_inscriptions.py index 5efe51f03..69cbb7ef0 100644 --- a/app/scodoc/sco_moduleimpl_inscriptions.py +++ b/app/scodoc/sco_moduleimpl_inscriptions.py @@ -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