diff --git a/app/but/bulletin_but.py b/app/but/bulletin_but.py index 891625e5..506f8754 100644 --- a/app/but/bulletin_but.py +++ b/app/but/bulletin_but.py @@ -435,7 +435,7 @@ class BulletinBUT: decision_ue=decisions_ues.get(ue.id, {}), etud_groups=etud_groups, ) - if ue_r: # exclu UE soprt sans inscriptions + if ue_r: # exclu UE sport sans inscriptions d_ues[ue.acronyme] = ue_r d["ues"] = d_ues diff --git a/app/comp/jury.py b/app/comp/jury.py index f7174d42..cad1b2a5 100644 --- a/app/comp/jury.py +++ b/app/comp/jury.py @@ -9,7 +9,7 @@ import pandas as pd from app import db -from app.models import FormSemestre, ScolarFormSemestreValidation +from app.models import FormSemestre, ScolarFormSemestreValidation, UniteEns from app.comp.res_cache import ResultatsCache from app.scodoc import sco_cache from app.scodoc import sco_codes_parcours @@ -68,7 +68,7 @@ class ValidationsSemestre(ResultatsCache): ) decisions_jury = {} for decision in decisions_jury_q.filter( - ScolarFormSemestreValidation.ue_id == None # slt dec. sem. + db.text("ue_id is NULL") # slt dec. sem. ): decisions_jury[decision.etudid] = { "code": decision.code, @@ -78,15 +78,18 @@ class ValidationsSemestre(ResultatsCache): } self.decisions_jury = decisions_jury - # UEs: + # UEs: { etudid : { ue_id : {"code":, "ects":, "event_date":} }} decisions_jury_ues = {} - for decision in decisions_jury_q.filter( - ScolarFormSemestreValidation.ue_id != None # slt dec. sem. + # Parcours les décisions d'UE: + for decision in ( + decisions_jury_q.filter(db.text("ue_id is not NULL")) + .join(UniteEns) + .order_by(UniteEns.numero) ): if decision.etudid not in decisions_jury_ues: decisions_jury_ues[decision.etudid] = {} # Calcul des ECTS associés à cette UE: - if sco_codes_parcours.code_ue_validant(decision.code): + if sco_codes_parcours.code_ue_validant(decision.code) and decision.ue: ects = decision.ue.ects or 0.0 # 0 if None else: ects = 0.0 diff --git a/app/scodoc/sco_bulletins.py b/app/scodoc/sco_bulletins.py index ba7618b7..ceb1a8c3 100644 --- a/app/scodoc/sco_bulletins.py +++ b/app/scodoc/sco_bulletins.py @@ -867,7 +867,7 @@ def _format_situation_fields( for field_name in field_names: field = infos.get(field_name, "") if field and not field.endswith("."): - infos[field_name] = "." + infos[field_name] += "." # ------ Page bulletin diff --git a/app/scodoc/sco_pvjury.py b/app/scodoc/sco_pvjury.py index 140234f5..27427aeb 100644 --- a/app/scodoc/sco_pvjury.py +++ b/app/scodoc/sco_pvjury.py @@ -98,10 +98,15 @@ def _descr_decisions_ues(nt, etudid, decisions_ue, decision_sem) -> list[dict]: if decisions_ue[ue_id] and ( sco_codes_parcours.code_ue_validant(decisions_ue[ue_id]["code"]) or ( - # XXX ceci devrait dépendre du parcours et non pas être une option ! #sco8 - decision_sem - and scu.CONFIG.CAPITALIZE_ALL_UES - and sco_codes_parcours.code_semestre_validant(decision_sem["code"]) + (not nt.is_apc) + and ( + # XXX ceci devrait dépendre du parcours et non pas être une option ! #sco8 + decision_sem + and scu.CONFIG.CAPITALIZE_ALL_UES + and sco_codes_parcours.code_semestre_validant( + decision_sem["code"] + ) + ) ) ): ue = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0] diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py index b7304c1e..ce36185e 100644 --- a/app/scodoc/sco_utils.py +++ b/app/scodoc/sco_utils.py @@ -1052,7 +1052,7 @@ def query_portal(req, msg="Portail Apogee", timeout=3): except requests.TooManyRedirects: error_message = "TooManyRedirects" except requests.RequestException: - error_message = "can't connect to {msg}" + error_message = f"can't connect to {msg}" if error_message is not None: log(f"query_portal: {error_message}") return "" diff --git a/sco_version.py b/sco_version.py index b23b6c3f..2faa78eb 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.3.37" +SCOVERSION = "9.3.38" SCONAME = "ScoDoc"