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
|
* @param {CallableFunction} errors fonction à effectuer en cas d'échec
|
||||||
*/
|
*/
|
||||||
async function async_post(path, data, success, errors) {
|
async function async_post(path, data, success, errors) {
|
||||||
// console.log("async_post " + path);
|
|
||||||
let response;
|
let response;
|
||||||
try {
|
try {
|
||||||
response = await fetch(path, {
|
response = await fetch(path, {
|
||||||
@ -655,9 +654,46 @@ function mettreToutLeMonde(etat, el = null) {
|
|||||||
if (!confirm("Effacer tout les évènements correspondant à cette plage ?")) {
|
if (!confirm("Effacer tout les évènements correspondant à cette plage ?")) {
|
||||||
return; // annulation
|
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")
|
.filter((e) => e.getAttribute("type") == "edition")
|
||||||
.map((e) => Number(e.getAttribute("assiduite_id")));
|
.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();
|
afficheLoader();
|
||||||
|
|
||||||
async_post(
|
async_post(
|
||||||
@ -672,6 +708,28 @@ function mettreToutLeMonde(etat, el = null) {
|
|||||||
console.error(data.errors);
|
console.error(data.errors);
|
||||||
}
|
}
|
||||||
envoiToastTous("remove", assiduites_id.length);
|
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) => {
|
(error) => {
|
||||||
console.error("Erreur lors de la suppression de l'assiduité", error);
|
console.error("Erreur lors de la suppression de l'assiduité", error);
|
||||||
|
Loading…
Reference in New Issue
Block a user