forked from ScoDoc/DocScoDoc
Ajout UE capitalisées au bulletin BUT json
This commit is contained in:
parent
ffa5190a49
commit
939c2ccf36
@ -19,6 +19,7 @@ from app.models.ues import UniteEns
|
|||||||
from app.scodoc import sco_bulletins, sco_utils as scu
|
from app.scodoc import sco_bulletins, sco_utils as scu
|
||||||
from app.scodoc import sco_bulletins_json
|
from app.scodoc import sco_bulletins_json
|
||||||
from app.scodoc import sco_bulletins_pdf
|
from app.scodoc import sco_bulletins_pdf
|
||||||
|
from app.scodoc import sco_codes_parcours
|
||||||
from app.scodoc import sco_groups
|
from app.scodoc import sco_groups
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
from app.scodoc.sco_codes_parcours import UE_SPORT, DEF
|
from app.scodoc.sco_codes_parcours import UE_SPORT, DEF
|
||||||
@ -137,6 +138,37 @@ class BulletinBUT:
|
|||||||
d["modules"] = self.etud_mods_results(etud, modimpls_spo)
|
d["modules"] = self.etud_mods_results(etud, modimpls_spo)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
def etud_ues_capitalisees(self, etud: Identite) -> dict:
|
||||||
|
"""dict avec les UE capitalisees. la clé est l'acronyme d'UE, qui ne
|
||||||
|
peut donc être capitalisée qu'une seule fois (on prend la meilleure)"""
|
||||||
|
if not etud.id in self.res.validations.ue_capitalisees:
|
||||||
|
return {} # aucune capitalisation
|
||||||
|
d = {}
|
||||||
|
for _, ue_capitalisee in self.res.validations.ue_capitalisees.loc[
|
||||||
|
etud.id
|
||||||
|
].iterrows():
|
||||||
|
if sco_codes_parcours.code_ue_validant(ue_capitalisee.code):
|
||||||
|
ue = UniteEns.query.get(ue_capitalisee.ue_id) # XXX cacher ?
|
||||||
|
# déjà capitalisé ? montre la meilleure
|
||||||
|
if (ue.acronyme in d) and (
|
||||||
|
(ue_capitalisee.moy_ue or 0.0) < (d[ue.acronyme]["moyenne"] or 0.0)
|
||||||
|
):
|
||||||
|
continue # skip this duplicate UE
|
||||||
|
|
||||||
|
d[ue.acronyme] = {
|
||||||
|
"id": ue.id,
|
||||||
|
"ue_code": ue_capitalisee.ue_code,
|
||||||
|
"titre": ue.titre,
|
||||||
|
"numero": ue.numero,
|
||||||
|
"type": ue.type,
|
||||||
|
"color": ue.color,
|
||||||
|
"moyenne": ue_capitalisee.moy_ue,
|
||||||
|
"is_external": ue_capitalisee.is_external,
|
||||||
|
"date_capitalisation": ue_capitalisee.event_date,
|
||||||
|
"formsemestre_id": ue_capitalisee.formsemestre_id,
|
||||||
|
}
|
||||||
|
return d
|
||||||
|
|
||||||
def etud_mods_results(self, etud, modimpls, version="long") -> dict:
|
def etud_mods_results(self, etud, modimpls, version="long") -> dict:
|
||||||
"""dict synthèse résultats des modules indiqués,
|
"""dict synthèse résultats des modules indiqués,
|
||||||
avec évaluations de chacun (sauf si version == "short")
|
avec évaluations de chacun (sauf si version == "short")
|
||||||
@ -377,9 +409,11 @@ class BulletinBUT:
|
|||||||
# si l'UE comporte des modules auxquels on est inscrit:
|
# si l'UE comporte des modules auxquels on est inscrit:
|
||||||
if ((ue.type == UE_SPORT) or ue.id in etud_ues_ids)
|
if ((ue.type == UE_SPORT) or ue.id in etud_ues_ids)
|
||||||
},
|
},
|
||||||
|
"ues_capitalisees": self.etud_ues_capitalisees(etud),
|
||||||
"semestre": semestre_infos,
|
"semestre": semestre_infos,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
semestre_infos.update(
|
semestre_infos.update(
|
||||||
{
|
{
|
||||||
|
@ -39,8 +39,9 @@ class ValidationsSemestre(ResultatsCache):
|
|||||||
formsemestre_id : origine de l'UE capitalisée
|
formsemestre_id : origine de l'UE capitalisée
|
||||||
is_external : vrai si validation effectuée dans un semestre extérieur
|
is_external : vrai si validation effectuée dans un semestre extérieur
|
||||||
ue_id : dans le semestre origine (pas toujours de la même formation)
|
ue_id : dans le semestre origine (pas toujours de la même formation)
|
||||||
ue_code : code de l'UE, moy_ue : note enregistrée,
|
ue_code : code de l'UE
|
||||||
event_date : date de la validation (jury)."""
|
moy_ue : note enregistrée
|
||||||
|
event_date : date de la validation (jury)"""
|
||||||
|
|
||||||
if not self.load_cached():
|
if not self.load_cached():
|
||||||
self.compute()
|
self.compute()
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
"""Résultats semestres BUT
|
"""Résultats semestres BUT
|
||||||
"""
|
"""
|
||||||
from re import U
|
|
||||||
import time
|
import time
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.3.31"
|
SCOVERSION = "9.3.32"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user