diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py index d4c710cc3..6b0e8fbc4 100644 --- a/app/scodoc/sco_utils.py +++ b/app/scodoc/sco_utils.py @@ -387,6 +387,20 @@ def localize_datetime(date: datetime.datetime) -> datetime.datetime: return new_date +def get_local_timezone_offset() -> str: + """Récupère l'offset de la timezone du serveur, sous la forme + "+HH:MM" + """ + local_time = datetime.datetime.now().astimezone() + utc_offset = local_time.utcoffset() + total_seconds = int(utc_offset.total_seconds()) + offset_hours = total_seconds // 3600 + offset_minutes = (abs(total_seconds) % 3600) // 60 + offset_sign = "+" if offset_hours >= 0 else "-" + offset_str = f"{offset_sign}{abs(offset_hours):02d}:{offset_minutes:02d}" + return offset_str + + def is_period_overlapping( periode: tuple[datetime.datetime, datetime.datetime], interval: tuple[datetime.datetime, datetime.datetime], diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js index 446817247..ec4c1993a 100644 --- a/app/static/js/assiduites.js +++ b/app/static/js/assiduites.js @@ -223,27 +223,27 @@ function creerLigneEtudiant(etud, index) {
- - - @@ -609,7 +609,7 @@ async function actionAssiduite(etud, etat, type, assiduite = null) { const modimpl_id = $("#moduleimpl_select").val(); if (assiduite && assiduite.etat.toLowerCase() === etat) type = "suppression"; - const { deb, fin } = getPeriodAsDate(); + const { deb, fin } = getPeriodAsDate(true); // en tz server // génération d'un objet assiduité basique qui sera complété let assiduiteObjet = assiduite ?? { date_debut: deb, @@ -709,7 +709,7 @@ function erreurModuleImpl(message) { function mettreToutLeMonde(etat, el = null) { const lignesEtuds = [...document.querySelectorAll("fieldset.btns_field")]; - const { deb, fin } = getPeriodAsDate(); + const { deb, fin } = getPeriodAsDate(true); // tz server const assiduiteObjet = { date_debut: deb, date_fin: fin, diff --git a/app/templates/assiduites/widgets/minitimeline.j2 b/app/templates/assiduites/widgets/minitimeline.j2 index feab40fd7..1698ae0fe 100644 --- a/app/templates/assiduites/widgets/minitimeline.j2 +++ b/app/templates/assiduites/widgets/minitimeline.j2 @@ -59,7 +59,7 @@ block.style.width = `${widthPercentage}%`; if (assiduité.etat != "CRENEAU") { - // Si on clique dessus on veut pouvoir + // Si on clique dessus on veut pouvoir // mettre à jour la timeline principale et modifier le moduleimpl_select block.addEventListener("click", () => { let deb = startDate.getHours() + startDate.getMinutes() / 60; @@ -71,7 +71,7 @@ $("#moduleimpl_select").val(getModuleImplId(assiduité)) setTimeout(()=>{ - $("#moduleimpl_select").trigger("change"); + $("#moduleimpl_select").trigger("change"); }, 0) }); //ajouter affichage assiduites on over diff --git a/app/templates/assiduites/widgets/timeline.j2 b/app/templates/assiduites/widgets/timeline.j2 index e16045f04..ddc96ad52 100644 --- a/app/templates/assiduites/widgets/timeline.j2 +++ b/app/templates/assiduites/widgets/timeline.j2 @@ -12,6 +12,7 @@