Affichage des UE capitalisées sur bulletins HTML BUT
This commit is contained in:
parent
939c2ccf36
commit
9ffb07ccce
@ -141,7 +141,7 @@ class BulletinBUT:
|
||||
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:
|
||||
if not etud.id in self.res.validations.ue_capitalisees.index:
|
||||
return {} # aucune capitalisation
|
||||
d = {}
|
||||
for _, ue_capitalisee in self.res.validations.ue_capitalisees.loc[
|
||||
@ -162,10 +162,23 @@ class BulletinBUT:
|
||||
"numero": ue.numero,
|
||||
"type": ue.type,
|
||||
"color": ue.color,
|
||||
"moyenne": ue_capitalisee.moy_ue,
|
||||
"moyenne": fmt_note(ue_capitalisee.moy_ue),
|
||||
"is_external": ue_capitalisee.is_external,
|
||||
"date_capitalisation": ue_capitalisee.event_date,
|
||||
"formsemestre_id": ue_capitalisee.formsemestre_id,
|
||||
"bul_orig_url": url_for(
|
||||
"notes.formsemestre_bulletinetud",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
etudid=etud.id,
|
||||
formsemestre_id=ue_capitalisee.formsemestre_id,
|
||||
)
|
||||
if ue_capitalisee.formsemestre_id
|
||||
else None,
|
||||
}
|
||||
if self.prefs["bul_show_ects"]:
|
||||
d[ue.acronyme]["ECTS"] = {
|
||||
"acquis": ue.ects or 0.0, # toujours validée ici
|
||||
"total": ue.ects or 0.0, # float même si non renseigné
|
||||
}
|
||||
return d
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
main {
|
||||
--couleurPrincipale: rgb(240, 250, 255);
|
||||
--couleurFondTitresUE: #b6ebff;
|
||||
--couleurFondTitresUECapitalisee: #96cf93;
|
||||
--couleurFondTitresRes: #f8c844;
|
||||
--couleurFondTitresSAE: #c6ffab;
|
||||
--couleurSecondaire: #fec;
|
||||
@ -256,6 +257,11 @@ section>div:nth-child(1) {
|
||||
background: var(--couleurFondTitresUE);
|
||||
}
|
||||
|
||||
.synthese .ue_capitalisee,
|
||||
.synthese .ue_capitalisee h3 {
|
||||
background: var(--couleurFondTitresUECapitalisee);
|
||||
}
|
||||
|
||||
.synthese .ue>div {
|
||||
text-align: right;
|
||||
}
|
||||
|
@ -225,13 +225,13 @@ class releveBUT extends HTMLElement {
|
||||
<div>${data.semestre.absences?.injustifie ?? "-"}</div>
|
||||
<div class=abs>Total</div><div>${data.semestre.absences?.total ?? "-"}</div>
|
||||
</div>`;
|
||||
if(data.semestre.decision_rcue?.length){
|
||||
if (data.semestre.decision_rcue?.length) {
|
||||
output += `
|
||||
<div>
|
||||
<div class=enteteSemestre>RCUE</div><div></div>
|
||||
${(()=>{
|
||||
${(() => {
|
||||
let output = "";
|
||||
data.semestre.decision_rcue.forEach(competence=>{
|
||||
data.semestre.decision_rcue.forEach(competence => {
|
||||
output += `<div class=competence>${competence.niveau.competence.titre}</div><div>${competence.code}</div>`;
|
||||
})
|
||||
return output;
|
||||
@ -239,13 +239,13 @@ class releveBUT extends HTMLElement {
|
||||
</div>
|
||||
</div>`
|
||||
}
|
||||
if(data.semestre.decision_ue?.length){
|
||||
if (data.semestre.decision_ue?.length) {
|
||||
output += `
|
||||
<div>
|
||||
<div class=enteteSemestre>UE</div><div></div>
|
||||
${(()=>{
|
||||
${(() => {
|
||||
let output = "";
|
||||
data.semestre.decision_ue.forEach(ue=>{
|
||||
data.semestre.decision_ue.forEach(ue => {
|
||||
output += `<div class=competence>${ue.acronyme}</div><div>${ue.code}</div>`;
|
||||
})
|
||||
return output;
|
||||
@ -328,10 +328,47 @@ class releveBUT extends HTMLElement {
|
||||
${this.synthese(data, dataUE.saes)}
|
||||
</div>
|
||||
`;
|
||||
/* UE capitalisées */
|
||||
if (ue in data.ues_capitalisees) {
|
||||
output += this.show_ue_capitalisee(ue, data.ues_capitalisees[ue]);
|
||||
delete data.ues_capitalisees[ue];
|
||||
}
|
||||
}
|
||||
});
|
||||
/* UE capitalisées seulement (non déjà vues) */
|
||||
Object.entries(data.ues_capitalisees).forEach(([ue, ue_cap]) => {
|
||||
output += this.show_ue_capitalisee(ue, data.ues_capitalisees[ue]);
|
||||
});
|
||||
this.shadow.querySelector(".synthese").innerHTML = output;
|
||||
}
|
||||
|
||||
show_ue_capitalisee(ue, ue_cap) {
|
||||
let date_capitalisation = new Date(ue_cap.date_capitalisation).toLocaleString("fr-FR");
|
||||
let link_sem = "";
|
||||
if (ue_cap.bul_orig_url != null) {
|
||||
link_sem = `<a href="${ue_cap.bul_orig_url}">dans ce semestre</a>`;
|
||||
}
|
||||
return `
|
||||
<div>
|
||||
<div class="ue ue_capitalisee">
|
||||
<h3>
|
||||
Capitalisée : ${ue}${(ue_cap.titre) ? " - " + ue_cap.titre : ""}
|
||||
</h3>
|
||||
<div>
|
||||
<div class=moyenne>Moyenne : ${ue_cap.moyenne ?? "-"}</div>
|
||||
|
||||
<div class=info>
|
||||
le ${date_capitalisation} ${link_sem}
|
||||
<span class=ects>
|
||||
ECTS : ${ue_cap.ECTS?.acquis ?? "-"} / ${ue_cap.ECTS?.total ?? "-"}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
|
||||
synthese(data, modules) {
|
||||
let output = "";
|
||||
Object.entries(modules).forEach(([module, dataModule]) => {
|
||||
|
Loading…
Reference in New Issue
Block a user