From f89e74c53ccf42507617be84775a3bc91819ed50 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 27 Jan 2022 11:44:58 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20=C3=A9dition=20module=20(rattac?= =?UTF-8?q?hements=20UE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scodoc/sco_edit_module.py | 58 +++++++++++++++++++---------------- scodoc.py | 3 +- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/app/scodoc/sco_edit_module.py b/app/scodoc/sco_edit_module.py index b575123e..8359d12b 100644 --- a/app/scodoc/sco_edit_module.py +++ b/app/scodoc/sco_edit_module.py @@ -476,31 +476,21 @@ def module_edit(module_id=None): parcours = sco_codes_parcours.get_parcours_from_code(formation["type_parcours"]) is_apc = parcours.APC_SAE # BUT in_use = len(a_module.modimpls.all()) > 0 # il y a des modimpls + matieres = Matiere.query.filter( + Matiere.ue_id == UniteEns.id, UniteEns.formation_id == formation_id + ).order_by(UniteEns.semestre_idx, UniteEns.numero, Matiere.numero) if in_use: - # matières du même semestre seulement - ues_matieres = ndb.SimpleDictFetch( - """SELECT ue.acronyme, mat.*, mat.id AS matiere_id - FROM notes_matieres mat, notes_ue ue - WHERE mat.ue_id = ue.id - AND ue.formation_id = %(formation_id)s - AND ue.semestre_idx = %(semestre_idx)s - ORDER BY ue.numero, mat.numero - """, - {"formation_id": formation_id, "semestre_idx": a_module.ue.semestre_idx}, - ) + # restreint aux matières du même semestre + matieres = matieres.filter(UniteEns.semestre_idx == a_module.ue.semestre_idx) + + if is_apc: + mat_names = [ + "S%s / %s" % (mat.ue.semestre_idx, mat.ue.acronyme) for mat in matieres + ] else: - # matières de la formation - ues_matieres = ndb.SimpleDictFetch( - """SELECT ue.acronyme, mat.*, mat.id AS matiere_id - FROM notes_matieres mat, notes_ue ue - WHERE mat.ue_id = ue.id - AND ue.formation_id = %(formation_id)s - ORDER BY ue.numero, mat.numero - """, - {"formation_id": formation_id}, - ) - mat_names = ["%s / %s" % (x["acronyme"], x["titre"]) for x in ues_matieres] - ue_mat_ids = ["%s!%s" % (x["ue_id"], x["matiere_id"]) for x in ues_matieres] + mat_names = ["%s / %s" % (mat.ue.acronyme, mat.titre or "") for mat in matieres] + ue_mat_ids = ["%s!%s" % (mat.ue.id, mat.id) for mat in matieres] + module["ue_matiere_id"] = "%s!%s" % (module["ue_id"], module["matiere_id"]) semestres_indices = list(range(1, parcours.NB_SEM + 1)) @@ -564,11 +554,17 @@ def module_edit(module_id=None): ), ( "heures_cours", - {"size": 4, "type": "float", "explanation": "nombre d'heures de cours"}, + { + "title": "Heures CM :", + "size": 4, + "type": "float", + "explanation": "nombre d'heures de cours", + }, ), ( "heures_td", { + "title": "Heures TD :", "size": 4, "type": "float", "explanation": "nombre d'heures de Travaux Dirigés", @@ -577,6 +573,7 @@ def module_edit(module_id=None): ( "heures_tp", { + "title": "Heures TP :", "size": 4, "type": "float", "explanation": "nombre d'heures de Travaux Pratiques", @@ -596,9 +593,9 @@ def module_edit(module_id=None): "ue_coefs", { "readonly": True, - "title": "Coefficients vers les UE", + "title": "Coefficients vers les UE ", "default": coefs_descr_txt, - "explanation": "passer par la page d'édition de la formation pour modifier les coefficients", + "explanation": "
(passer par la page d'édition de la formation pour modifier les coefficients)", }, ) ] @@ -624,7 +621,14 @@ def module_edit(module_id=None): { "input_type": "menu", "title": "Rattachement :" if is_apc else "Matière :", - "explanation": "UE de rattachement, utilisée pour la présentation" + "explanation": ( + "UE de rattachement" + + ( + " module utilisé, ne peut pas être changé de semestre" + if in_use + else "" + ) + ) if is_apc else "un module appartient à une seule matière.", "labels": mat_names, diff --git a/scodoc.py b/scodoc.py index a18251fd..28dfe7cf 100755 --- a/scodoc.py +++ b/scodoc.py @@ -22,7 +22,7 @@ from app import models from app.auth.models import User, Role, UserRole from app.scodoc.sco_logos import make_logo_local -from app.models import Formation, UniteEns, Module +from app.models import Formation, UniteEns, Matiere, Module from app.models import FormSemestre, FormSemestreInscription from app.models import ModuleImpl, ModuleImplInscription from app.models import Identite @@ -62,6 +62,7 @@ def make_shell_context(): "logout_user": logout_user, "mapp": mapp, "models": models, + "Matiere": Matiere, "Module": Module, "ModuleImpl": ModuleImpl, "ModuleImplInscription": ModuleImplInscription,