Ajout description bonus sur bulletin BUT json
This commit is contained in:
parent
d0daecdb7f
commit
4ae138c496
@ -59,9 +59,9 @@ class BulletinBUT(ResultatsSemestreBUT):
|
|||||||
"competence": None, # XXX TODO lien avec référentiel
|
"competence": None, # XXX TODO lien avec référentiel
|
||||||
"moyenne": None,
|
"moyenne": None,
|
||||||
# Le bonus sport appliqué sur cette UE
|
# Le bonus sport appliqué sur cette UE
|
||||||
"bonus": self.bonus_ues[ue.id][etud.id]
|
"bonus": fmt_note(self.bonus_ues[ue.id][etud.id])
|
||||||
if self.bonus_ues is not None and ue.id in self.bonus_ues
|
if self.bonus_ues is not None and ue.id in self.bonus_ues
|
||||||
else 0.0,
|
else fmt_note(0.0),
|
||||||
"malus": None, # XXX TODO voir ce qui est ici
|
"malus": None, # XXX TODO voir ce qui est ici
|
||||||
"capitalise": None, # "AAAA-MM-JJ" TODO
|
"capitalise": None, # "AAAA-MM-JJ" TODO
|
||||||
"ressources": self.etud_ue_mod_results(etud, ue, self.ressources),
|
"ressources": self.etud_ue_mod_results(etud, ue, self.ressources),
|
||||||
@ -74,6 +74,16 @@ class BulletinBUT(ResultatsSemestreBUT):
|
|||||||
"max": fmt_note(self.etud_moy_ue[ue.id].max()),
|
"max": fmt_note(self.etud_moy_ue[ue.id].max()),
|
||||||
"moy": fmt_note(self.etud_moy_ue[ue.id].mean()),
|
"moy": fmt_note(self.etud_moy_ue[ue.id].mean()),
|
||||||
}
|
}
|
||||||
|
else:
|
||||||
|
# ceci suppose que l'on a une seule UE bonus,
|
||||||
|
# en tous cas elles auront la même description
|
||||||
|
d["bonus_description"] = self.etud_bonus_description(etud.id)
|
||||||
|
modimpls_spo = [
|
||||||
|
modimpl
|
||||||
|
for modimpl in self.formsemestre.modimpls_sorted
|
||||||
|
if modimpl.module.ue.type == UE_SPORT
|
||||||
|
]
|
||||||
|
d["modules"] = self.etud_mods_results(etud, modimpls_spo)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def etud_mods_results(self, etud, modimpls) -> dict:
|
def etud_mods_results(self, etud, modimpls) -> dict:
|
||||||
@ -152,6 +162,27 @@ class BulletinBUT(ResultatsSemestreBUT):
|
|||||||
}
|
}
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
def etud_bonus_description(self, etudid):
|
||||||
|
"""description du bonus affichée dans la section "UE bonus"."""
|
||||||
|
if self.bonus_ues is None or self.bonus_ues.shape[1] == 0:
|
||||||
|
return ""
|
||||||
|
import random
|
||||||
|
|
||||||
|
bonus_vect = self.bonus_ues.loc[etudid] + [random.random() for i in range(3)]
|
||||||
|
if bonus_vect.nunique() > 1:
|
||||||
|
# détail UE par UE
|
||||||
|
details = [
|
||||||
|
f"{fmt_note(bonus_vect[ue.id])} sur {ue.acronyme}"
|
||||||
|
for ue in self.ues
|
||||||
|
if ue.id in self.bonus_ues and bonus_vect[ue.id] > 0.0
|
||||||
|
]
|
||||||
|
if details:
|
||||||
|
return "Bonus de " + ", ".join(details)
|
||||||
|
else:
|
||||||
|
return "" # aucun bonus
|
||||||
|
else:
|
||||||
|
return f"Bonus de {fmt_note(bonus_vect.iloc[0])}"
|
||||||
|
|
||||||
def bulletin_etud(self, etud, formsemestre, force_publishing=False) -> dict:
|
def bulletin_etud(self, etud, formsemestre, force_publishing=False) -> dict:
|
||||||
"""Le bulletin de l'étudiant dans ce semestre.
|
"""Le bulletin de l'étudiant dans ce semestre.
|
||||||
Si force_publishing, rempli le bulletin même si bul_hide_xml est vrai
|
Si force_publishing, rempli le bulletin même si bul_hide_xml est vrai
|
||||||
|
Loading…
Reference in New Issue
Block a user