Améliore édition module (rattachements UE)

This commit is contained in:
Emmanuel Viennet 2022-01-27 11:44:58 +01:00
parent cc6ec2416c
commit f89e74c53c
2 changed files with 33 additions and 28 deletions

View File

@ -476,31 +476,21 @@ def module_edit(module_id=None):
parcours = sco_codes_parcours.get_parcours_from_code(formation["type_parcours"]) parcours = sco_codes_parcours.get_parcours_from_code(formation["type_parcours"])
is_apc = parcours.APC_SAE # BUT is_apc = parcours.APC_SAE # BUT
in_use = len(a_module.modimpls.all()) > 0 # il y a des modimpls 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: if in_use:
# matières du même semestre seulement # restreint aux matières du même semestre
ues_matieres = ndb.SimpleDictFetch( matieres = matieres.filter(UniteEns.semestre_idx == a_module.ue.semestre_idx)
"""SELECT ue.acronyme, mat.*, mat.id AS matiere_id
FROM notes_matieres mat, notes_ue ue if is_apc:
WHERE mat.ue_id = ue.id mat_names = [
AND ue.formation_id = %(formation_id)s "S%s / %s" % (mat.ue.semestre_idx, mat.ue.acronyme) for mat in matieres
AND ue.semestre_idx = %(semestre_idx)s ]
ORDER BY ue.numero, mat.numero
""",
{"formation_id": formation_id, "semestre_idx": a_module.ue.semestre_idx},
)
else: else:
# matières de la formation mat_names = ["%s / %s" % (mat.ue.acronyme, mat.titre or "") for mat in matieres]
ues_matieres = ndb.SimpleDictFetch( ue_mat_ids = ["%s!%s" % (mat.ue.id, mat.id) for mat in matieres]
"""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]
module["ue_matiere_id"] = "%s!%s" % (module["ue_id"], module["matiere_id"]) module["ue_matiere_id"] = "%s!%s" % (module["ue_id"], module["matiere_id"])
semestres_indices = list(range(1, parcours.NB_SEM + 1)) semestres_indices = list(range(1, parcours.NB_SEM + 1))
@ -564,11 +554,17 @@ def module_edit(module_id=None):
), ),
( (
"heures_cours", "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", "heures_td",
{ {
"title": "Heures TD :",
"size": 4, "size": 4,
"type": "float", "type": "float",
"explanation": "nombre d'heures de Travaux Dirigés", "explanation": "nombre d'heures de Travaux Dirigés",
@ -577,6 +573,7 @@ def module_edit(module_id=None):
( (
"heures_tp", "heures_tp",
{ {
"title": "Heures TP :",
"size": 4, "size": 4,
"type": "float", "type": "float",
"explanation": "nombre d'heures de Travaux Pratiques", "explanation": "nombre d'heures de Travaux Pratiques",
@ -596,9 +593,9 @@ def module_edit(module_id=None):
"ue_coefs", "ue_coefs",
{ {
"readonly": True, "readonly": True,
"title": "Coefficients vers les UE", "title": "Coefficients vers les UE ",
"default": coefs_descr_txt, "default": coefs_descr_txt,
"explanation": "passer par la page d'édition de la formation pour modifier les coefficients", "explanation": " <br>(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", "input_type": "menu",
"title": "Rattachement :" if is_apc else "Matière :", "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 if is_apc
else "un module appartient à une seule matière.", else "un module appartient à une seule matière.",
"labels": mat_names, "labels": mat_names,

View File

@ -22,7 +22,7 @@ from app import models
from app.auth.models import User, Role, UserRole from app.auth.models import User, Role, UserRole
from app.scodoc.sco_logos import make_logo_local 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 FormSemestre, FormSemestreInscription
from app.models import ModuleImpl, ModuleImplInscription from app.models import ModuleImpl, ModuleImplInscription
from app.models import Identite from app.models import Identite
@ -62,6 +62,7 @@ def make_shell_context():
"logout_user": logout_user, "logout_user": logout_user,
"mapp": mapp, "mapp": mapp,
"models": models, "models": models,
"Matiere": Matiere,
"Module": Module, "Module": Module,
"ModuleImpl": ModuleImpl, "ModuleImpl": ModuleImpl,
"ModuleImplInscription": ModuleImplInscription, "ModuleImplInscription": ModuleImplInscription,