diff --git a/app/static/css/table_editor.css b/app/static/css/table_editor.css index 6a031683..a6439f36 100644 --- a/app/static/css/table_editor.css +++ b/app/static/css/table_editor.css @@ -75,6 +75,25 @@ div.champs_coef_hors_parcours { background-position: top left; } +div.tableau_legende { + display: inline-flex; + margin-top: 8px; +} + +div.tableau_legende>div { + display: inline-flex; + margin-left: 12px; + align-items: center; +} + +div.champs_legende { + width: 32px; + height: 20px; + padding: 4px 8px; + border-radius: 4px; + border: 1px solid #999; +} + div.title_MALUS { background-color: #ff4700; } diff --git a/app/static/js/table_editor.js b/app/static/js/table_editor.js index 5370594f..603e0792 100644 --- a/app/static/js/table_editor.js +++ b/app/static/js/table_editor.js @@ -11,7 +11,7 @@ function build_table(data) { let output = ""; let sumsUE = {}; let sumsRessources = {}; - let value; + let value; data.forEach((cellule) => { output += ` @@ -33,13 +33,13 @@ function build_table(data) { --nbX:${cellule.nbX || 1}; --nbY: ${cellule.nbY || 1}; ">${cellule.data}`; // ne pas mettre d'espace car c'est utilisé par :not(:empty) après - + if (cellule.style.includes("champs")) { - if (cellule.editable == true && cellule.data) { - value = parseFloat(cellule.data) *100; - } else { - value = 0; - } + if (cellule.editable == true && cellule.data) { + value = parseFloat(cellule.data) * 100; + } else { + value = 0; + } sumsRessources[cellule.y] = (sumsRessources[cellule.y] ?? 0) + value; sumsUE[cellule.x] = (sumsUE[cellule.x] ?? 0) + value; } @@ -191,13 +191,19 @@ function keyCell(event) { function processSums() { let sum = 0; document.querySelectorAll(`[data-editable="true"][data-x="${this.dataset.x}"]:not(:empty)`).forEach(e => { - sum += parseFloat(e.innerText) * 100; + let val = parseFloat(e.innerText); + if (!isNaN(val)) { + sum += val * 100; + } }) document.querySelector(`.sums[data-x="${this.dataset.x}"][data-y="${lastY}"]`).innerText = sum / 100; sum = 0; document.querySelectorAll(`[data-editable="true"][data-y="${this.dataset.y}"]:not(:empty)`).forEach(e => { - sum += parseFloat(e.innerText) * 100; + let val = parseFloat(e.innerText); + if (!isNaN(val)) { + sum += val * 100; + } }) document.querySelector(`.sums[data-x="${lastX}"][data-y="${this.dataset.y}"]`).innerText = sum / 100; } diff --git a/app/templates/pn/form_modules_ue_coefs.html b/app/templates/pn/form_modules_ue_coefs.html index c2765234..01ee098a 100644 --- a/app/templates/pn/form_modules_ue_coefs.html +++ b/app/templates/pn/form_modules_ue_coefs.html @@ -43,6 +43,24 @@
+

Explications

+
+

Ces coefficients permettent de calculer les moyennes d'Unités d'Enseignement (UE) + à partir des notes des ressources et SAÉs. Chaque ligne correspond à un + module (ressource ou SAÉ), et chaque colonne à une UE.

+

Si la formation est associée à un référentiel de compétences, on peut + restreindre l'affichage aux UE et modules de l'un des parcours à l'aide du + menu "Parcours" au dessus du tableau. Les UEs et modules de tronc commun + apparaissent toujours.

+

Les cases grisées à droite et en bas donnent la somme des coefficients.

+
+ +
+
+
module non associé au parcours de cette UE, le coef devrait être nul.
+
+ +