forked from ScoDoc/ScoDoc
Assiduité : modif suppression assiduités (mettre tout le monde) + avertissement
This commit is contained in:
parent
db44e8e5f4
commit
9801cf7936
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user