forked from ScoDoc/ScoDoc
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:
|
def etud_ues_capitalisees(self, etud: Identite) -> dict:
|
||||||
"""dict avec les UE capitalisees. la clé est l'acronyme d'UE, qui ne
|
"""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)"""
|
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
|
return {} # aucune capitalisation
|
||||||
d = {}
|
d = {}
|
||||||
for _, ue_capitalisee in self.res.validations.ue_capitalisees.loc[
|
for _, ue_capitalisee in self.res.validations.ue_capitalisees.loc[
|
||||||
@ -162,11 +162,24 @@ class BulletinBUT:
|
|||||||
"numero": ue.numero,
|
"numero": ue.numero,
|
||||||
"type": ue.type,
|
"type": ue.type,
|
||||||
"color": ue.color,
|
"color": ue.color,
|
||||||
"moyenne": ue_capitalisee.moy_ue,
|
"moyenne": fmt_note(ue_capitalisee.moy_ue),
|
||||||
"is_external": ue_capitalisee.is_external,
|
"is_external": ue_capitalisee.is_external,
|
||||||
"date_capitalisation": ue_capitalisee.event_date,
|
"date_capitalisation": ue_capitalisee.event_date,
|
||||||
"formsemestre_id": ue_capitalisee.formsemestre_id,
|
"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
|
return d
|
||||||
|
|
||||||
def etud_mods_results(self, etud, modimpls, version="long") -> dict:
|
def etud_mods_results(self, etud, modimpls, version="long") -> dict:
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
main {
|
main {
|
||||||
--couleurPrincipale: rgb(240, 250, 255);
|
--couleurPrincipale: rgb(240, 250, 255);
|
||||||
--couleurFondTitresUE: #b6ebff;
|
--couleurFondTitresUE: #b6ebff;
|
||||||
|
--couleurFondTitresUECapitalisee: #96cf93;
|
||||||
--couleurFondTitresRes: #f8c844;
|
--couleurFondTitresRes: #f8c844;
|
||||||
--couleurFondTitresSAE: #c6ffab;
|
--couleurFondTitresSAE: #c6ffab;
|
||||||
--couleurSecondaire: #fec;
|
--couleurSecondaire: #fec;
|
||||||
@ -256,6 +257,11 @@ section>div:nth-child(1) {
|
|||||||
background: var(--couleurFondTitresUE);
|
background: var(--couleurFondTitresUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.synthese .ue_capitalisee,
|
||||||
|
.synthese .ue_capitalisee h3 {
|
||||||
|
background: var(--couleurFondTitresUECapitalisee);
|
||||||
|
}
|
||||||
|
|
||||||
.synthese .ue>div {
|
.synthese .ue>div {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
@ -225,13 +225,13 @@ class releveBUT extends HTMLElement {
|
|||||||
<div>${data.semestre.absences?.injustifie ?? "-"}</div>
|
<div>${data.semestre.absences?.injustifie ?? "-"}</div>
|
||||||
<div class=abs>Total</div><div>${data.semestre.absences?.total ?? "-"}</div>
|
<div class=abs>Total</div><div>${data.semestre.absences?.total ?? "-"}</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
if(data.semestre.decision_rcue?.length){
|
if (data.semestre.decision_rcue?.length) {
|
||||||
output += `
|
output += `
|
||||||
<div>
|
<div>
|
||||||
<div class=enteteSemestre>RCUE</div><div></div>
|
<div class=enteteSemestre>RCUE</div><div></div>
|
||||||
${(()=>{
|
${(() => {
|
||||||
let output = "";
|
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>`;
|
output += `<div class=competence>${competence.niveau.competence.titre}</div><div>${competence.code}</div>`;
|
||||||
})
|
})
|
||||||
return output;
|
return output;
|
||||||
@ -239,13 +239,13 @@ class releveBUT extends HTMLElement {
|
|||||||
</div>
|
</div>
|
||||||
</div>`
|
</div>`
|
||||||
}
|
}
|
||||||
if(data.semestre.decision_ue?.length){
|
if (data.semestre.decision_ue?.length) {
|
||||||
output += `
|
output += `
|
||||||
<div>
|
<div>
|
||||||
<div class=enteteSemestre>UE</div><div></div>
|
<div class=enteteSemestre>UE</div><div></div>
|
||||||
${(()=>{
|
${(() => {
|
||||||
let output = "";
|
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>`;
|
output += `<div class=competence>${ue.acronyme}</div><div>${ue.code}</div>`;
|
||||||
})
|
})
|
||||||
return output;
|
return output;
|
||||||
@ -253,7 +253,7 @@ class releveBUT extends HTMLElement {
|
|||||||
</div>
|
</div>
|
||||||
</div>`
|
</div>`
|
||||||
}
|
}
|
||||||
|
|
||||||
output += `
|
output += `
|
||||||
<a class=photo href="${data.etudiant.fiche_url}">
|
<a class=photo href="${data.etudiant.fiche_url}">
|
||||||
<img src="${data.etudiant.photo_url || "default_Student.svg"}" alt="photo de l'étudiant" title="fiche de l'étudiant" height="120" border="0">
|
<img src="${data.etudiant.photo_url || "default_Student.svg"}" alt="photo de l'étudiant" title="fiche de l'étudiant" height="120" border="0">
|
||||||
@ -271,12 +271,12 @@ class releveBUT extends HTMLElement {
|
|||||||
}).join("")
|
}).join("")
|
||||||
}*/
|
}*/
|
||||||
this.shadow.querySelector(".infoSemestre").innerHTML = output;
|
this.shadow.querySelector(".infoSemestre").innerHTML = output;
|
||||||
|
|
||||||
|
|
||||||
/*if(data.semestre.decision_annee?.code){
|
/*if(data.semestre.decision_annee?.code){
|
||||||
this.shadow.querySelector(".decision_annee").innerHTML = "Décision année : " + data.semestre.decision_annee.code + " - " + correspondanceCodes[data.semestre.decision_annee.code];
|
this.shadow.querySelector(".decision_annee").innerHTML = "Décision année : " + data.semestre.decision_annee.code + " - " + correspondanceCodes[data.semestre.decision_annee.code];
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
this.shadow.querySelector(".decision").innerHTML = data.semestre.situation || "";
|
this.shadow.querySelector(".decision").innerHTML = data.semestre.situation || "";
|
||||||
/*if (data.semestre.decision?.code) {
|
/*if (data.semestre.decision?.code) {
|
||||||
this.shadow.querySelector(".decision").innerHTML = "Décision jury: " + (data.semestre.decision?.code || "");
|
this.shadow.querySelector(".decision").innerHTML = "Décision jury: " + (data.semestre.decision?.code || "");
|
||||||
@ -328,10 +328,47 @@ class releveBUT extends HTMLElement {
|
|||||||
${this.synthese(data, dataUE.saes)}
|
${this.synthese(data, dataUE.saes)}
|
||||||
</div>
|
</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;
|
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) {
|
synthese(data, modules) {
|
||||||
let output = "";
|
let output = "";
|
||||||
Object.entries(modules).forEach(([module, dataModule]) => {
|
Object.entries(modules).forEach(([module, dataModule]) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user