1
0
forked from ScoDoc/ScoDoc

BUT: édition des coefs: légende

This commit is contained in:
Emmanuel Viennet 2022-10-31 11:44:22 +01:00
parent aeab3c752e
commit 3e7aa48918
3 changed files with 52 additions and 9 deletions

View File

@ -75,6 +75,25 @@ div.champs_coef_hors_parcours {
background-position: top left; 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 { div.title_MALUS {
background-color: #ff4700; background-color: #ff4700;
} }

View File

@ -11,7 +11,7 @@ function build_table(data) {
let output = ""; let output = "";
let sumsUE = {}; let sumsUE = {};
let sumsRessources = {}; let sumsRessources = {};
let value; let value;
data.forEach((cellule) => { data.forEach((cellule) => {
output += ` output += `
@ -33,13 +33,13 @@ function build_table(data) {
--nbX:${cellule.nbX || 1}; --nbX:${cellule.nbX || 1};
--nbY: ${cellule.nbY || 1}; --nbY: ${cellule.nbY || 1};
">${cellule.data}</div>`; // ne pas mettre d'espace car c'est utilisé par :not(:empty) après ">${cellule.data}</div>`; // ne pas mettre d'espace car c'est utilisé par :not(:empty) après
if (cellule.style.includes("champs")) { if (cellule.style.includes("champs")) {
if (cellule.editable == true && cellule.data) { if (cellule.editable == true && cellule.data) {
value = parseFloat(cellule.data) *100; value = parseFloat(cellule.data) * 100;
} else { } else {
value = 0; value = 0;
} }
sumsRessources[cellule.y] = (sumsRessources[cellule.y] ?? 0) + value; sumsRessources[cellule.y] = (sumsRessources[cellule.y] ?? 0) + value;
sumsUE[cellule.x] = (sumsUE[cellule.x] ?? 0) + value; sumsUE[cellule.x] = (sumsUE[cellule.x] ?? 0) + value;
} }
@ -191,13 +191,19 @@ function keyCell(event) {
function processSums() { function processSums() {
let sum = 0; let sum = 0;
document.querySelectorAll(`[data-editable="true"][data-x="${this.dataset.x}"]:not(:empty)`).forEach(e => { 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; document.querySelector(`.sums[data-x="${this.dataset.x}"][data-y="${lastY}"]`).innerText = sum / 100;
sum = 0; sum = 0;
document.querySelectorAll(`[data-editable="true"][data-y="${this.dataset.y}"]:not(:empty)`).forEach(e => { 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; document.querySelector(`.sums[data-x="${lastX}"][data-y="${this.dataset.y}"]`).innerText = sum / 100;
} }

View File

@ -43,6 +43,24 @@
<div class="tableau"></div> <div class="tableau"></div>
<h4>Explications</h4>
<div class="help">
<p>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.</p>
<p>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. </p>
<p>Les cases grisées à droite et en bas donnent la somme des coefficients.</p>
</div>
<div class="tableau_legende">
<div class="champs_coef_hors_parcours champs_legende"></div>
<div class="help">module non associé au parcours de cette UE, le coef devrait être nul.</div>
</div>
<script> <script>
var read_only = {{ "true" if read_only else "false"}}; var read_only = {{ "true" if read_only else "false"}};
$(function () { $(function () {