forked from ScoDoc/ScoDoc
Fix #376: Bulletin BUT: le bonus sport affiché aux non inscrits
This commit is contained in:
parent
9ffb07ccce
commit
c0d02d7e3b
@ -76,9 +76,20 @@ class BulletinBUT:
|
|||||||
) -> dict:
|
) -> dict:
|
||||||
"""dict synthèse résultats UE
|
"""dict synthèse résultats UE
|
||||||
etud_groups : liste des groupes, pour affichage du rang.
|
etud_groups : liste des groupes, pour affichage du rang.
|
||||||
|
Si UE sport et étudiant non inscrit, renvoie dict vide.
|
||||||
"""
|
"""
|
||||||
res = self.res
|
res = self.res
|
||||||
|
|
||||||
|
if ue.type == UE_SPORT:
|
||||||
|
modimpls_spo = [
|
||||||
|
modimpl
|
||||||
|
for modimpl in res.formsemestre.modimpls_sorted
|
||||||
|
if modimpl.module.ue.type == UE_SPORT
|
||||||
|
]
|
||||||
|
# L'étudiant est-il inscrit à l'un des modules de l'UE bonus ?
|
||||||
|
if not any(res.modimpl_inscr_df.loc[etud.id][[m.id for m in modimpls_spo]]):
|
||||||
|
return {}
|
||||||
|
|
||||||
d = {
|
d = {
|
||||||
"id": ue.id,
|
"id": ue.id,
|
||||||
"titre": ue.titre,
|
"titre": ue.titre,
|
||||||
@ -126,16 +137,12 @@ class BulletinBUT:
|
|||||||
"value": rang,
|
"value": rang,
|
||||||
"total": effectif,
|
"total": effectif,
|
||||||
}
|
}
|
||||||
else:
|
else: # UE BONUS
|
||||||
|
d["modules"] = self.etud_mods_results(etud, modimpls_spo)
|
||||||
# ceci suppose que l'on a une seule UE bonus,
|
# ceci suppose que l'on a une seule UE bonus,
|
||||||
# en tous cas elles auront la même description
|
# en tous cas elles auront la même description
|
||||||
d["bonus_description"] = self.etud_bonus_description(etud.id)
|
d["bonus_description"] = self.etud_bonus_description(etud.id)
|
||||||
modimpls_spo = [
|
|
||||||
modimpl
|
|
||||||
for modimpl in res.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_ues_capitalisees(self, etud: Identite) -> dict:
|
def etud_ues_capitalisees(self, etud: Identite) -> dict:
|
||||||
@ -411,21 +418,23 @@ class BulletinBUT:
|
|||||||
etud, res.ressources, version=version
|
etud, res.ressources, version=version
|
||||||
),
|
),
|
||||||
"saes": self.etud_mods_results(etud, res.saes, version=version),
|
"saes": self.etud_mods_results(etud, res.saes, version=version),
|
||||||
"ues": {
|
"ues_capitalisees": self.etud_ues_capitalisees(etud),
|
||||||
ue.acronyme: self.etud_ue_results(
|
"semestre": semestre_infos,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
d_ues = {}
|
||||||
|
for ue in res.ues:
|
||||||
|
# si l'UE comporte des modules auxquels on est inscrit:
|
||||||
|
if (ue.type == UE_SPORT) or ue.id in etud_ues_ids:
|
||||||
|
ue_r = self.etud_ue_results(
|
||||||
etud,
|
etud,
|
||||||
ue,
|
ue,
|
||||||
decision_ue=decisions_ues.get(ue.id, {}),
|
decision_ue=decisions_ues.get(ue.id, {}),
|
||||||
etud_groups=etud_groups,
|
etud_groups=etud_groups,
|
||||||
)
|
)
|
||||||
for ue in res.ues
|
if ue_r: # exclu UE soprt sans inscriptions
|
||||||
# si l'UE comporte des modules auxquels on est inscrit:
|
d_ues[ue.acronyme] = ue_r
|
||||||
if ((ue.type == UE_SPORT) or ue.id in etud_ues_ids)
|
d["ues"] = d_ues
|
||||||
},
|
|
||||||
"ues_capitalisees": self.etud_ues_capitalisees(etud),
|
|
||||||
"semestre": semestre_infos,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
semestre_infos.update(
|
semestre_infos.update(
|
||||||
|
Loading…
Reference in New Issue
Block a user