From a75b41ca5f2372f95d5ec71892792c89e678ec6d Mon Sep 17 00:00:00 2001 From: Iziram Date: Mon, 25 Mar 2024 15:12:08 +0100 Subject: [PATCH] =?UTF-8?q?Assiduit=C3=A9=20:=20signal=5Fassiduites=5Fdiff?= =?UTF-8?q?=20:=20v=C3=A9rification=20date?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/signal_assiduites_diff.j2 | 53 +++++++++++++++---- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/app/templates/assiduites/pages/signal_assiduites_diff.j2 b/app/templates/assiduites/pages/signal_assiduites_diff.j2 index 6847259e6..f7b37a21f 100644 --- a/app/templates/assiduites/pages/signal_assiduites_diff.j2 +++ b/app/templates/assiduites/pages/signal_assiduites_diff.j2 @@ -20,7 +20,7 @@ #actions { flex-direction: row; align-items: center; - margin-bottom: 5px; + margin: 5px 0; } #actions label{ margin: 0; @@ -174,6 +174,48 @@ async function nouvellePeriode(period = null) { } } + // Vérification de la plage horaire + // On génère une date de début et de fin de la période + const date_debut = new Date( + $("#date").datepicker("getDate").format("YYYY-MM-DD") + "T" + debut + ); + const date_fin = new Date( + $("#date").datepicker("getDate").format("YYYY-MM-DD") + "T" + fin + ); + date_debut.add(1, "seconds"); + + // On vérifie que les dates sont valides + if (!date_debut.isValid()){ + const p = document.createElement("p"); + p.textContent = "La date de début n'est pas valide."; + openAlertModal( + "Erreur", + p, + ); + return; + } + if (!date_fin.isValid()){ + const p = document.createElement("p"); + p.textContent = "La date de fin n'est pas valide."; + openAlertModal( + "Erreur", + p, + ); + return; + } + + // On vérifie que l'heure de fin est supérieure à l'heure de début + if (date_debut >= date_fin) { + const p = document.createElement("p"); + p.textContent = "La plage horaire n'est pas valide. L'heure de fin doit être "+ + "supérieure à l'heure de début."; + openAlertModal( + "Erreur", + p, + ); + return; + } + // On ajoute la nouvelle période au tableau let periodeDiv = document.createElement("div"); periodeDiv.classList.add("cell", "header"); @@ -211,15 +253,6 @@ async function nouvellePeriode(period = null) { ...document.querySelectorAll(".ligne[data-etudid]"), ].map((e) => e.getAttribute("data-etudid")); - // On génère une date de début et de fin de la période - const date_debut = new Date( - $("#date").datepicker("getDate").format("YYYY-MM-DD") + "T" + debut - ); - const date_fin = new Date( - $("#date").datepicker("getDate").format("YYYY-MM-DD") + "T" + fin - ); - date_debut.add(1, "seconds"); - // Préparation de la requête const url = `../../api/assiduites/group/query?date_debut=${date_debut.toFakeIso()}` +