From 14a88001971cfed0a90c2901b50503a7059c1719 Mon Sep 17 00:00:00 2001 From: lehmann Date: Tue, 26 Jul 2022 00:38:46 +0200 Subject: [PATCH] Edition partition - fin pour tests --- app/templates/scolar/partition_editor.html | 120 ++++++++++++++++----- 1 file changed, 94 insertions(+), 26 deletions(-) diff --git a/app/templates/scolar/partition_editor.html b/app/templates/scolar/partition_editor.html index bd34fe574..0b204602b 100644 --- a/app/templates/scolar/partition_editor.html +++ b/app/templates/scolar/partition_editor.html @@ -86,19 +86,15 @@
${(() => { - let output = ""; - Object.entries(partition.groups).forEach(([idGroupe, titreGroupe]) => { - /***************/ - outputMasques += `
||${titreGroupe.name}✏️
`; - /***************/ - output += ` -
-
${titreGroupe.name}
-
-
`; - }) - return output; - })()} + let output = ""; + Object.entries(partition.groups).forEach(([idGroupe, titreGroupe]) => { + /***************/ + outputMasques += `
||${titreGroupe.name}✏️
`; + /***************/ + output += templateGroupe_zoneGroupes(idGroupe, titreGroupe.name); + }) + return output; + })()} `; outputMasques += `
+
@@ -121,36 +117,42 @@ let output = "
"; Object.entries(partitions).forEach(([idPartition, dataPartition]) => { output += ` -
-
${dataPartition.partition_name}
- ${(() => { +
+
${dataPartition.partition_name}
+ ${(() => { let output = ""; let affected = false; Object.entries(dataPartition.groups).forEach(([idGroupe, titreGroupe]) => { output += ` - `; + `; if (etudiant.partitions[idPartition] == idGroupe) { affected = true; - document.querySelector(`#zoneGroupes [data-idgroupe="${idGroupe}"]>.etudiants`).innerHTML += templateEtudiantGroupes(etudiant); + document.querySelector(`#zoneGroupes [data-idgroupe="${idGroupe}"]>.etudiants`).innerHTML += templateEtudiant_zoneGroupes(etudiant); } }) if (!affected) { - document.querySelector(`#zoneGroupes [data-idpartition="${idPartition}"]>[data-idgroupe="aucun"]>.etudiants`).innerHTML += templateEtudiantGroupes(etudiant); + document.querySelector(`#zoneGroupes [data-idpartition="${idPartition}"]>[data-idgroupe="aucun"]>.etudiants`).innerHTML += templateEtudiant_zoneGroupes(etudiant); } return `` + output; })()} -
`; +
`; }) return output + "
"; })()} `; }) document.querySelector("#zoneChoix>.etudiants").innerHTML = output; - } - function templateEtudiantGroupes(etudiant) { + function templateGroupe_zoneGroupes(idGroupe, name) { + return `
+
${name}
+
+
`; + } + + function templateEtudiant_zoneGroupes(etudiant) { return `
${etudiant.nom_disp} ${etudiant.prenom}
` } @@ -274,7 +276,7 @@ } let results = document.querySelector(`#zoneGroupes [data-idPartition="${idPartition}"] [data-idgroupe="${idGroupe}"]>.etudiants`); - results.innerHTML += templateEtudiantGroupes(etudiant); + results.innerHTML += templateEtudiant_zoneGroupes(etudiant); /* Tri */ let results2 = [...results.children]; @@ -308,18 +310,20 @@ } - /*******************/ - /* Ajout partition */ - /*******************/ + /****************************/ + /* Ajout partition / groupe */ + /****************************/ function addPartition() { let date = new Date; if (this.classList.contains("ajoutPartition")) { + // Partition var name = "Nouvelle " + date.getSeconds(); let params = (new URL(document.location)).searchParams; let formsemestre_id = params.get('formsemestre_id'); var url = "/ScoDoc/api/formsemestre/" + formsemestre_id + "/partition/create"; var payload = { partition_name: name }; } else { + // Groupe var name = "Nouveau " + date.getSeconds(); var url = `/ScoDoc/api/partition/${this.parentElement.dataset.idpartition}/group/create`; var payload = { group_name: name }; @@ -355,8 +359,72 @@ } if (this.classList.contains("ajoutPartition")) { div.dataset.idpartition = r.id; + + // Ajout dans la zone masques + let div = document.createElement("div"); + div.dataset.idpartition = r.id; + div.innerHTML = ` +
Non affectés - ${name}
+
+
`; + + div.querySelector("div").addEventListener("click", filtre); + div.querySelector(".ajoutGroupe").addEventListener("click", addPartition); + + document.querySelector("#zoneChoix .masques>div").appendChild(div); + + // Ajout de la zone pour chaque étudiant + let outputGroupes = ""; + + document.querySelectorAll(`#zoneChoix .grpPartitions`).forEach(e => { + let etudid = e.previousElementSibling.dataset.etudid; + + // Préparation pour la section suivante + let etudiant = { + etudid: etudid, + nom_disp: e.previousElementSibling.dataset.nom, + prenom:e.previousElementSibling.dataset.prenom + } + outputGroupes += templateEtudiant_zoneGroupes(etudiant); + //////////////////////// + + let div = document.createElement("div"); + div.className = "partition"; + div.dataset.idpartition = r.id; + div.innerHTML = ` +
${name}
+ + `; + div.querySelector("input").addEventListener("input", assignment); + e.appendChild(div); + }); + + // Ajout de la zone groupes + document.querySelector("#zoneGroupes>.groupes").innerHTML += ` +
+

${name}

+
+
Non affecté(s)
+
${outputGroupes}
+
+
`; } else { div.dataset.idgroupe = r.id; + + // Ajout du bouton pour chaque étudiant + let idpartition = this.parentElement.dataset.idpartition; + document.querySelectorAll(`#zoneChoix .etudiants [data-idpartition="${idpartition}"]`).forEach(e => { + let etudid = e.parentElement.parentElement.dataset.etudid; + let label = document.createElement("label"); + label.innerHTML = `${name}`; + label.querySelector("input").addEventListener("input", assignment); + e.appendChild(label); + }) + + // Ajout du groupe dans la zone Groupes + document.querySelector(`#zoneGroupes .partition[data-idpartition="${idpartition}"]`).innerHTML += templateGroupe_zoneGroupes(r.id, name); } })