/* Module par Seb. L. */ // class releveBUT extends HTMLElement { // constructor() { // super(); // this.shadow = this.attachShadow({ mode: "open" }); // // /* Config par defaut */ // this.config = { // showURL: true, // }; // // /* Template du module */ // this.shadow.innerHTML = this.template(); // // /* Style du module */ // const styles = document.createElement("link"); // styles.setAttribute("rel", "stylesheet"); // if (location.href.includes("ScoDoc")) { // styles.setAttribute( // "href", // removeLastTwoComponents(getCurrentScriptPath()) + "/css/releve-but.css" // ); // Scodoc // } else { // styles.setAttribute("href", "/assets/styles/releve-but.css"); // Passerelle // } // this.shadow.appendChild(styles); // } // listeOnOff() { // this.parentElement.parentElement.classList.toggle("listeOff"); // this.parentElement.parentElement // .querySelectorAll(".moduleOnOff") // .forEach((e) => { // e.classList.remove("moduleOnOff"); // }); // } // moduleOnOff() { // this.parentElement.classList.toggle("moduleOnOff"); // } // goTo() { // let module = this.dataset.module; // this.parentElement.parentElement.parentElement.parentElement // .querySelector("#Module_" + module) // .scrollIntoView(); // } // // set setConfig(config) { // this.config.showURL = config.showURL ?? this.config.showURL; // } // // set showData(data) { // // this.showInformations(data); // this.showSemestre(data); // this.showSynthese(data); // this.showEvaluations(data); // // this.showCustom(data); // // this.setOptions(data.options); // // this.shadow.querySelectorAll(".CTA_Liste").forEach((e) => { // e.addEventListener("click", this.listeOnOff); // }); // this.shadow.querySelectorAll(".ue, .module").forEach((e) => { // e.addEventListener("click", this.moduleOnOff); // }); // this.shadow // .querySelectorAll(":not(.ueBonus)+.syntheseModule") // .forEach((e) => { // e.addEventListener("click", this.goTo); // }); // // this.shadow.children[0].classList.add("ready"); // } // // template() { // return ` //
//
//
// // // // // //
// // // // //
//

//
//
//
//
//
//
//
Inscrit le
// Les moyennes ci-dessus servent à situer l'étudiant dans la promotion et ne correspondent pas à des validations de compétences ou d'UE. //
//
// //
// // // // //
//
//
//

Unités d'enseignement

// La moyenne des ressources dans une UE dépend des poids donnés aux évaluations. //
//
// Liste // // //
//
//
//
// // // // //
//
//

Ressources

//
// Liste // // //
//
//
//
// //
//
//

Situations d'apprentissage et d'évaluation (SAÉ)

//
// Liste // // //
//
//
//
// //
//
`; // } // // /********************************/ // /* Informations sur l'étudiant */ // /********************************/ // showInformations(data) { // this.shadow.querySelector(".studentPic").src = // data.etudiant.photo_url || "default_Student.svg"; // // let output = ""; // // if (this.config.showURL) { // output += ``; // } else { // output += `
`; // } // // output += ` //
// ${this.civilite(data.etudiant.civilite)} // ${data.etudiant.nom} // ${data.etudiant.prenom}`; // // if (data.etudiant.date_naissance) { // output += `
né${ // data.etudiant.civilite == "F" ? "e" : "" // } le ${this.ISOToDate(data.etudiant.date_naissance)}
`; // } // // output += ` //
//
// Numéro étudiant : ${data.etudiant.code_nip || "~"} - // Code INE : ${data.etudiant.code_ine || "~"} //
//
${data.formation.titre}
// `; // if (this.config.showURL) { // output += `
`; // } else { // output += `
`; // } // // this.shadow.querySelector(".infoEtudiant").innerHTML = output; // } // // /*******************************/ // /* Affichage local */ // /*******************************/ // showCustom(data) { // this.shadow.querySelector(".custom").innerHTML = data.custom || ""; // } // // /*******************************/ // /* Information sur le semestre */ // /*******************************/ // showSemestre(data) { // let correspondanceCodes = { // ADM: "Admis", // AJD: "Admis par décision de jury", // PASD: "Passage de droit : tout n'est pas validé, mais d'après les règles du BUT, vous passez", // PAS1NCI: // "Vous passez par décision de jury mais attention, vous n'avez pas partout le niveau suffisant", // RED: "Ajourné mais autorisé à redoubler", // NAR: "Non admis et non autorisé à redoubler : réorientation", // DEM: "Démission", // ABAN: "Abandon constaté sans lettre de démission", // RAT: "En attente d'un rattrapage", // EXCLU: "Exclusion dans le cadre d'une décision disciplinaire", // DEF: "Défaillance : non évalué par manque d'assiduité", // ABL: "Année blanche", // }; // // this.shadow.querySelector( // "#identite_etudiant" // ).innerHTML = ` ${data.etudiant.nomprenom} `; // this.shadow.querySelector(".dateInscription").innerHTML += this.ISOToDate( // data.semestre.inscription // ); // let output = ""; // if (!data.options.block_moyenne_generale) { // output += ` //
//
Moyenne
${data.semestre.notes.value}
//
Rang :
${data.semestre.rang.value} / ${data.semestre.rang.total}
//
Max. promo. :
${data.semestre.notes.max}
//
Moy. promo. :
${data.semestre.notes.moy}
//
Min. promo. :
${data.semestre.notes.min}
//
// `; // } // output += ` // ${(() => { // if ( // !data.semestre.rang.groupes || // Object.keys(data.semestre.rang.groupes).length == 0 // ) { // return ""; // } // let output = ""; // let [idGroupe, dataGroupe] = Object.entries( // data.semestre.rang.groupes // )[0]; // output += `
//
${data.semestre.groupes[0]?.group_name}
//
Rang :
${dataGroupe.value} / ${dataGroupe.total}
//
`; // //
Max. promo. :
${dataGroupe.max || "-"}
// //
Moy. promo. :
${dataGroupe.moy || "-"}
// //
Min. promo. :
${dataGroupe.min || "-"}
// return output; // })()} //
//
Absences
${ // data.semestre.absences?.metrique ?? "1/2 jour." // }
//
Non justifiées
//
${data.semestre.absences?.injustifie ?? "-"}
//
Total
${data.semestre.absences?.total ?? "-"}
//
`; // if (data.semestre.decision_rcue?.length) { // output += ` //
//
RCUE
// ${(() => { // let output = ""; // data.semestre.decision_rcue.forEach((competence) => { // output += `
${competence.niveau.competence.titre}
${competence.code}
`; // }); // return output; // })()} //
// `; // } // if (data.semestre.decision_ue?.length) { // output += ` //
//
UE
// ${(() => { // let output = ""; // data.semestre.decision_ue.forEach((ue) => { // output += `
${ue.acronyme}
${ue.code}
`; // }); // return output; // })()} //
// `; // } // // output += ` // // photo de l'étudiant // `; // /*${data.semestre.groupes.map(groupe => { // return ` //
//
Groupe
${groupe.nom}
//
Rang :
${groupe.rang.value} / ${groupe.rang.total}
//
Max. groupe :
${groupe.notes.max}
//
Moy. groupe :
${groupe.notes.min}
//
Min. groupe :
${groupe.notes.min}
//
// `; // }).join("") // }*/ // this.shadow.querySelector(".infoSemestre").innerHTML = output; // // /*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").innerHTML = // data.semestre.situation || ""; // /*if (data.semestre.decision?.code) { // this.shadow.querySelector(".decision").innerHTML = "Décision jury: " + (data.semestre.decision?.code || ""); // }*/ // this.shadow.querySelector("#ects_tot").innerHTML = // "ECTS : " + // (data.semestre.ECTS?.acquis ?? "-") + // " / " + // (data.semestre.ECTS?.total ?? "-"); // } // // /*******************************/ // /* Synthèse */ // /*******************************/ // showSynthese(data) { // let output = ``; // /* Fusion et tri des UE et UE capitalisées */ // let fusionUE = [ // ...Object.entries(data.ues), // ...Object.entries(data.ues_capitalisees), // ].sort((a, b) => { // return a[1].numero - b[1].numero; // }); // // /* Affichage */ // fusionUE.forEach(([ue, dataUE]) => { // if (dataUE.type == 1) { // // UE Sport / Bonus // output += ` //
//
//

Bonus

//
${dataUE.bonus_description}
//
// ${this.ueSport(dataUE.modules)} //
// `; // } else { // output += ` //
//
//

// ${ue}${dataUE.titre ? " - " + dataUE.titre : ""} //

//
//
Moyenne : ${ // dataUE.moyenne?.value || dataUE.moyenne || "-" // }
//
Rang : ${dataUE.moyenne?.rang} / ${ // dataUE.moyenne?.total // }
//
`; // if (!dataUE.date_capitalisation) { // output += ` Bonus : ${dataUE.bonus || 0} - `; // if (dataUE.malus >= 0) { // output += `Malus : ${dataUE.malus || 0}`; // } else { // output += `Bonus complémentaire : ${ // -dataUE.malus || 0 // }`; // } // } else { // output += ` le ${this.ISOToDate( // dataUE.date_capitalisation.split("T")[0] // )} dans ce semestre`; // } // // output += `  - // ECTS : ${dataUE.ECTS?.acquis ?? "-"} / ${ // dataUE.ECTS?.total ?? "-" // } // //
//
`; // /*
//
Abs N.J.
${dataUE.absences?.injustifie || 0}
//
Total
${dataUE.absences?.total || 0}
//
*/ // output += "
"; // // if (!dataUE.date_capitalisation) { // output += // this.synthese(data, dataUE.ressources) + // this.synthese(data, dataUE.saes); // } // // output += "
"; // } // }); // this.shadow.querySelector(".synthese").innerHTML = output; // } // synthese(data, modules) { // let output = ""; // Object.entries(modules).forEach(([module, dataModule]) => { // let titre = data.ressources[module]?.titre || data.saes[module]?.titre; // //let url = data.ressources[module]?.url || data.saes[module]?.url; // output += ` //
//
${module} - ${titre}
//
// ${dataModule.moyenne} // Coef. ${dataModule.coef} //
//
// `; // }); // return output; // } // ueSport(modules) { // let output = ""; // Object.values(modules).forEach((module) => { // Object.values(module.evaluations).forEach((evaluation) => { // output += ` //
//
${module.titre} - ${evaluation.description || "Note"}
//
// ${evaluation.note.value ?? "-"} // Coef. ${evaluation.coef ?? "*"} //
//
// `; // }); // }); // return output; // } // // /*******************************/ // /* Evaluations */ // /*******************************/ // showEvaluations(data) { // this.shadow.querySelector(".evaluations").innerHTML = this.module( // data.ressources // ); // this.shadow.querySelector(".sae").innerHTML += this.module(data.saes); // } // module(module) { // let output = ""; // Object.entries(module).forEach(([numero, content]) => { // output += ` //
//
//

${this.URL(content.url, `${numero} - ${content.titre}`)}

//
//
Moyenne indicative : ${ // content.moyenne.value // }
//
// Classe : ${content.moyenne.moy} - // Max : ${content.moyenne.max} - // Min : ${content.moyenne.min} //
//
//
//
Abs inj.
${content.absences?.injustifie || 0}
//
Total
${content.absences?.total || 0}
//
//
// ${this.evaluation(content.evaluations)} //
// `; // }); // return output; // } // // evaluation(evaluations) { // let output = ""; // evaluations.forEach((evaluation) => { // output += ` //
//
${this.URL(evaluation.url, evaluation.description || "Évaluation")}
//
// ${evaluation.note.value} // Coef. ${evaluation.coef ?? "*"} //
//
//
Coef
${evaluation.coef}
//
Max. promo.
${evaluation.note.max}
//
Moy. promo.
${evaluation.note.moy}
//
Min. promo.
${evaluation.note.min}
// ${Object.entries(evaluation.poids) // .map(([UE, poids]) => { // return ` //
Poids ${UE}
//
${poids}
// `; // }) // .join("")} //
//
// `; // }); // return output; // } // // /********************/ // /* Options */ // /********************/ // setOptions(options) { // Object.entries(options).forEach(([option, value]) => { // if (value === false) { // this.shadow.children[0].classList.add(option.replace("show", "hide")); // } // }); // } // // /********************/ // /* Fonctions d'aide */ // /********************/ // URL(href, content) { // if (this.config.showURL) { // return `${content}`; // } else { // return content; // } // } // civilite(txt) { // switch (txt) { // case "M": // return "M."; // case "F": // return "Mme"; // default: // return ""; // } // } // // ISOToDate(ISO) { // return ISO.split("-").reverse().join("/"); // } // } // customElements.define("releve-but", releveBUT);