Ordre des modules sur page modification de semestre

This commit is contained in:
Emmanuel Viennet 2022-01-30 23:52:52 +01:00
parent c8d693ba03
commit 8b3178cd23
2 changed files with 14 additions and 30 deletions

View File

@ -447,7 +447,7 @@ class BonusLille(BonusSportAdditif):
"""Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d'Ascq """Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d'Ascq
Les étudiants de l'IUT peuvent suivre des enseignements optionnels Les étudiants de l'IUT peuvent suivre des enseignements optionnels
de l'Université Lille 1 (sports, etc) non rattachés à une unité d'enseignement. de l'Université Lille (sports, etc) non rattachés à une unité d'enseignement.
Les points au-dessus de 10 sur 20 obtenus dans chacune des matières Les points au-dessus de 10 sur 20 obtenus dans chacune des matières
optionnelles sont cumulés et 4% (2% avant août 2010) de ces points cumulés optionnelles sont cumulés et 4% (2% avant août 2010) de ces points cumulés

View File

@ -35,7 +35,7 @@ from flask_login import current_user
from app import db from app import db
from app.auth.models import User from app.auth.models import User
from app.models import APO_CODE_STR_LEN, SHORT_STR_LEN from app.models import APO_CODE_STR_LEN, SHORT_STR_LEN
from app.models import Module, ModuleImpl, Evaluation, EvaluationUEPoids from app.models import Module, ModuleImpl, Evaluation, EvaluationUEPoids, UniteEns
from app.models.formations import Formation from app.models.formations import Formation
from app.models.formsemestre import FormSemestre from app.models.formsemestre import FormSemestre
import app.scodoc.notesdb as ndb import app.scodoc.notesdb as ndb
@ -215,34 +215,18 @@ def do_formsemestre_createwithmodules(edit=False):
semestre_id_labels.append("pas de semestres") semestre_id_labels.append("pas de semestres")
else: else:
semestre_id_labels.append(f"S{sid}") semestre_id_labels.append(f"S{sid}")
# Liste des modules dans ce semestre de cette formation # Liste des modules dans cette formation
# on pourrait faire un simple module_list( ) if formation.is_apc():
# mais si on veut l'ordre du PPN (groupe par UE et matieres) il faut: modules = formation.modules.order_by(Module.module_type, Module.numero)
mods = [] # liste de dicts else:
uelist = sco_edit_ue.ue_list({"formation_id": formation_id}) modules = (
for ue in uelist: Module.query.filter(
matlist = sco_edit_matiere.matiere_list({"ue_id": ue["ue_id"]}) Module.formation_id == formation_id, UniteEns.id == Module.ue_id
for mat in matlist:
modsmat = sco_edit_module.module_list({"matiere_id": mat["matiere_id"]})
# XXX debug checks
for m in modsmat:
if m["ue_id"] != ue["ue_id"]:
log(
"XXX createwithmodules: m.ue_id=%s != u.ue_id=%s !"
% (m["ue_id"], ue["ue_id"])
) )
if m["formation_id"] != formation_id: .order_by(Module.module_type, UniteEns.numero, Module.numero)
log( .all()
"XXX createwithmodules: formation_id=%s\n\tm=%s"
% (formation_id, str(m))
) )
if m["formation_id"] != ue["formation_id"]: mods = [mod.to_dict() for mod in modules]
log(
"XXX createwithmodules: formation_id=%s\n\tue=%s\tm=%s"
% (formation_id, str(ue), str(m))
)
# /debug
mods = mods + modsmat
# Pour regroupement des modules par semestres: # Pour regroupement des modules par semestres:
semestre_ids = {} semestre_ids = {}
for mod in mods: for mod in mods: