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_json
|
||||
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_preferences
|
||||
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)
|
||||
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:
|
||||
"""dict synthèse résultats des modules indiqués,
|
||||
avec évaluations de chacun (sauf si version == "short")
|
||||
@ -377,9 +409,11 @@ class BulletinBUT:
|
||||
# si l'UE comporte des modules auxquels on est inscrit:
|
||||
if ((ue.type == UE_SPORT) or ue.id in etud_ues_ids)
|
||||
},
|
||||
"ues_capitalisees": self.etud_ues_capitalisees(etud),
|
||||
"semestre": semestre_infos,
|
||||
},
|
||||
)
|
||||
|
||||
else:
|
||||
semestre_infos.update(
|
||||
{
|
||||
|
@ -39,8 +39,9 @@ class ValidationsSemestre(ResultatsCache):
|
||||
formsemestre_id : origine de l'UE capitalisée
|
||||
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_code : code de l'UE, moy_ue : note enregistrée,
|
||||
event_date : date de la validation (jury)."""
|
||||
ue_code : code de l'UE
|
||||
moy_ue : note enregistrée
|
||||
event_date : date de la validation (jury)"""
|
||||
|
||||
if not self.load_cached():
|
||||
self.compute()
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
"""Résultats semestres BUT
|
||||
"""
|
||||
from re import U
|
||||
import time
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
|
@ -1,7 +1,7 @@
|
||||
# -*- mode: python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
SCOVERSION = "9.3.31"
|
||||
SCOVERSION = "9.3.32"
|
||||
|
||||
SCONAME = "ScoDoc"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user