1
0
forked from ScoDoc/ScoDoc

Assiduité : modif suppression assiduités (mettre tout le monde) + avertissement

This commit is contained in:
Iziram 2024-06-04 15:21:28 +02:00
parent db44e8e5f4
commit 9801cf7936

View File

@ -53,7 +53,6 @@ async function async_get(path, success, errors) {
* @param {CallableFunction} errors fonction à effectuer en cas d'échec
*/
async function async_post(path, data, success, errors) {
// console.log("async_post " + path);
let response;
try {
response = await fetch(path, {
@ -655,9 +654,46 @@ function mettreToutLeMonde(etat, el = null) {
if (!confirm("Effacer tout les évènements correspondant à cette plage ?")) {
return; // annulation
}
const assiduites_id = lignesEtuds
// On récupère les lignes avec une seule assiduité
let assiduites_id = lignesEtuds
.filter((e) => e.getAttribute("type") == "edition")
.map((e) => Number(e.getAttribute("assiduite_id")));
// On récupère les assiduités conflictuelles mais qui sont comprisent
// Dans la plage de suppression
const unDeleted = {};
lignesEtuds
.filter((e) => e.getAttribute("type") == "conflit")
.forEach((e) => {
const etud = etuds.get(Number(e.getAttribute("etudid")));
// On récupère les assiduités couvertent par la plage de suppression
etud.assiduites.forEach((a) => {
const date_debut = new Date(a.date_debut);
const date_fin = new Date(a.date_fin);
// On prend en compte uniquement les assiduités conflictuelles
// (qui intersectent la plage de suppression)
if (
Date.intersect(
{ deb: deb, fin: fin },
{ deb: date_debut, fin: date_fin }
)
) {
// Si l'assiduité est couverte par la plage de suppression
// On l'ajoute à la liste des assiduités à supprimer.
if (
date_debut.isBetween(deb, fin, "[]") &&
date_fin.isBetween(deb, fin, "[]")
) {
assiduites_id.push(a.assiduite_id);
}
// Sinon on ajoute l'étudiant à la liste des étudiants non gérés
else {
unDeleted[a.etudid] = true;
}
}
});
});
afficheLoader();
async_post(
@ -672,6 +708,28 @@ function mettreToutLeMonde(etat, el = null) {
console.error(data.errors);
}
envoiToastTous("remove", assiduites_id.length);
if (Object.keys(unDeleted).length == 0) return;
let unDeletedEtuds = `
<ul>
${Object.keys(unDeleted)
.map((etudid) => {
const etud = etuds.get(Number(etudid));
return `<li>${etud.civilite}. ${etud.nom.toUpperCase()} ${
etud.prenom
}</li>`;
})
.join("")}
</ul>
`;
let html = `
<p>Les assiduités des étudiants suivants n'ont pas été supprimées car elles ne sont pas incluses dans la plage de suppression :</p>
${unDeletedEtuds}
`;
const div = document.createElement("div");
div.innerHTML = html;
openAlertModal("Assiduité non supprimée", div);
},
(error) => {
console.error("Erreur lors de la suppression de l'assiduité", error);