/* 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.
//
//
//
//
//
//
//
//
//
//
//
//
//
//
Situations d'apprentissage et d'évaluation (SAÉ)
//
//
//
//
//
//
//
`;
// }
//
// /********************************/
// /* 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 += `
//
//
// `;
// /*${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);