1
0
forked from ScoDoc/ScoDoc

Assiduité : mettre tout le monde uniquement création closes #917

This commit is contained in:
Iziram 2024-06-03 08:20:25 +02:00
parent fed84559fc
commit ba77b155c5
2 changed files with 5 additions and 58 deletions

View File

@ -681,14 +681,10 @@ function mettreToutLeMonde(etat, el = null) {
return; return;
} }
// Création / édition des assiduités // Création
const assiduitesACreer = lignesEtuds const assiduitesACreer = lignesEtuds
.filter((e) => e.getAttribute("type") == "creation") .filter((e) => e.getAttribute("type") == "creation")
.map((e) => Number(e.getAttribute("etudid"))); .map((e) => Number(e.getAttribute("etudid")));
const assiduitesAEditer = lignesEtuds
.filter((e) => e.getAttribute("type") == "edition")
.map((e) => Number(e.getAttribute("assiduite_id")));
// création // création
const promiseCreate = async_post( const promiseCreate = async_post(
@ -705,29 +701,15 @@ function mettreToutLeMonde(etat, el = null) {
console.error("Erreur lors de la création de l'assiduité", error); console.error("Erreur lors de la création de l'assiduité", error);
} }
); );
const promiseEdit = async_post(
`../../api/assiduites/edit`,
assiduitesAEditer.map((assiduite_id) => {
return { ...assiduiteObjet, assiduite_id };
}),
async (data) => {
if (data.errors.length > 0) {
console.error(data.errors);
}
},
(error) => {
console.error("Erreur lors de l'édition de l'assiduité", error);
}
);
// Affiche un loader // Affiche un loader
afficheLoader(); afficheLoader();
Promise.all([promiseCreate, promiseEdit]).then(async () => { Promise.all([promiseCreate]).then(async () => {
retirerLoader(); retirerLoader();
await recupAssiduites(etuds, $("#date").datepicker("getDate")); await recupAssiduites(etuds, $("#date").datepicker("getDate"));
creerTousLesEtudiants(etuds); creerTousLesEtudiants(etuds);
envoiToastTous(etat, assiduitesACreer.length + assiduitesAEditer.length); envoiToastTous(etat, assiduitesACreer.length);
}); });
} }

View File

@ -571,7 +571,6 @@
} }
let toCreate = []; // [{etudid:<int>}] let toCreate = []; // [{etudid:<int>}]
let toEdit = [];// [{etudid:<int>, assiduite_id:<int>}]
tds.forEach((td) => { tds.forEach((td) => {
// on ne touche pas aux conflits // on ne touche pas aux conflits
@ -585,8 +584,6 @@
const assiduite_id = td.getAttribute("assiduite_id"); const assiduite_id = td.getAttribute("assiduite_id");
if (assiduite_id == "") { if (assiduite_id == "") {
toCreate.push({ etudid: etudid }); toCreate.push({ etudid: etudid });
} else {
toEdit.push({ etudid: etudid, assiduite_id: Number(assiduite_id) });
} }
}) })
@ -598,19 +595,9 @@
} }
}); });
// Modification
toEdit = toEdit.map((el) => {
return {
...assi,
etudid: el.etudid,
assiduite_id: el.assiduite_id,
}
});
// Appel API // Appel API
let counts = { let counts = {
create: toCreate.length, create: toCreate.length,
edit: toEdit.length
} }
const promiseCreate = async_post( const promiseCreate = async_post(
`../../api/assiduites/create`, `../../api/assiduites/create`,
@ -633,35 +620,13 @@
console.error("Erreur lors de la création de l'assiduité", error); console.error("Erreur lors de la création de l'assiduité", error);
} }
); );
const promiseEdit = async_post(
`../../api/assiduites/edit`,
toEdit,
async (data) => {
if (data.errors.length > 0) {
console.error(data.errors);
data.errors.forEach((err) => {
let obj = toEdit[err.indice];
let etu = etuds.find((el) => el.id == obj.etudid);
const text = document.createTextNode(`Erreur pour ${etu.nom} ${etu.prenom} : ${err.message}`);
const toast = generateToast(text, "var(--color-error)");
pushToast(toast);
});
}
counts.edit = data.success.length;
},
(error) => {
console.error("Erreur lors de l'édition de l'assiduité", error);
}
);
// Affiche un loader // Affiche un loader
afficheLoader(); afficheLoader();
Promise.all([promiseCreate, promiseEdit]).then(async () => { Promise.all([promiseCreate]).then(async () => {
retirerLoader(); retirerLoader();
await recupAssiduitesHebdo(updateTable); await recupAssiduitesHebdo(updateTable);
envoiToastTous("present", counts.create + counts.edit); envoiToastTous("present", counts.create);
}); });
} }