diff --git a/app/comp/bonus_spo.py b/app/comp/bonus_spo.py index 8d415dc10..48d3d816a 100644 --- a/app/comp/bonus_spo.py +++ b/app/comp/bonus_spo.py @@ -447,7 +447,7 @@ class BonusLille(BonusSportAdditif): """Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d'Ascq 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 optionnelles sont cumulés et 4% (2% avant août 2010) de ces points cumulés diff --git a/app/scodoc/sco_formsemestre_edit.py b/app/scodoc/sco_formsemestre_edit.py index b1f6faa68..f1cf22644 100644 --- a/app/scodoc/sco_formsemestre_edit.py +++ b/app/scodoc/sco_formsemestre_edit.py @@ -35,7 +35,7 @@ from flask_login import current_user from app import db from app.auth.models import User 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.formsemestre import FormSemestre import app.scodoc.notesdb as ndb @@ -215,34 +215,18 @@ def do_formsemestre_createwithmodules(edit=False): semestre_id_labels.append("pas de semestres") else: semestre_id_labels.append(f"S{sid}") - # Liste des modules dans ce semestre de cette formation - # on pourrait faire un simple module_list( ) - # mais si on veut l'ordre du PPN (groupe par UE et matieres) il faut: - mods = [] # liste de dicts - uelist = sco_edit_ue.ue_list({"formation_id": formation_id}) - for ue in uelist: - matlist = sco_edit_matiere.matiere_list({"ue_id": ue["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: - log( - "XXX createwithmodules: formation_id=%s\n\tm=%s" - % (formation_id, str(m)) - ) - if m["formation_id"] != ue["formation_id"]: - log( - "XXX createwithmodules: formation_id=%s\n\tue=%s\tm=%s" - % (formation_id, str(ue), str(m)) - ) - # /debug - mods = mods + modsmat + # Liste des modules dans cette formation + if formation.is_apc(): + modules = formation.modules.order_by(Module.module_type, Module.numero) + else: + modules = ( + Module.query.filter( + Module.formation_id == formation_id, UniteEns.id == Module.ue_id + ) + .order_by(Module.module_type, UniteEns.numero, Module.numero) + .all() + ) + mods = [mod.to_dict() for mod in modules] # Pour regroupement des modules par semestres: semestre_ids = {} for mod in mods: