From b74d525c28de5cd5bdae6d877ba3513ccca02180 Mon Sep 17 00:00:00 2001 From: Iziram Date: Fri, 15 Mar 2024 15:56:33 +0100 Subject: [PATCH] =?UTF-8?q?Assiduit=C3=A9:=20signal=5Fassiduites=5Fdiff=20?= =?UTF-8?q?OK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scodoc/sco_moduleimpl_status.py | 9 +- app/static/css/assiduites.css | 15 +- app/static/js/assiduites.js | 10 + app/static/js/date_utils.js | 9 + .../pages/signal_assiduites_diff.j2 | 476 +++++++++++++----- app/views/assiduites.py | 10 +- 6 files changed, 388 insertions(+), 141 deletions(-) diff --git a/app/scodoc/sco_moduleimpl_status.py b/app/scodoc/sco_moduleimpl_status.py index c45d1b84..aee1c91e 100644 --- a/app/scodoc/sco_moduleimpl_status.py +++ b/app/scodoc/sco_moduleimpl_status.py @@ -25,8 +25,8 @@ # ############################################################################## -"""Tableau de bord module -""" +"""Tableau de bord module""" + import math import time import datetime @@ -329,8 +329,6 @@ def moduleimpl_status(moduleimpl_id=None, partition_id=None): >Saisie Absences journée """ ) - year, week, day = datetime.date.today().isocalendar() - semaine: str = f"{year}-W{week}" H.append( f""" Saisie Absences hebdo + >Saisie Absences Différée """ ) diff --git a/app/static/css/assiduites.css b/app/static/css/assiduites.css index 02730449..f4d1ee4f 100644 --- a/app/static/css/assiduites.css +++ b/app/static/css/assiduites.css @@ -440,12 +440,6 @@ position: absolute; z-index: 5; border: 5px solid var(--color-primary); - /* background-color: rgba(36, 36, 36, 0.25); - background-image: repeating-linear-gradient(135deg, - transparent, - transparent 5px, - rgba(81, 81, 81, 0.61) 5px, - rgba(81, 81, 81, 0.61) 10px); */ border-radius: 5px; } @@ -455,6 +449,15 @@ transform: translateX(-50%); } +.assiduite-infos { + position: absolute; + right: 0; + margin: 5px; + top: 0; + font-size: 16px; + cursor: pointer; +} + .action-buttons { display: flex; justify-content: center; diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js index a29c2f25..8054f3de 100644 --- a/app/static/js/assiduites.js +++ b/app/static/js/assiduites.js @@ -855,6 +855,16 @@ function setupAssiduiteBubble(el, assiduite) { bubble.className = "assiduite-bubble"; bubble.classList.add(assiduite.etat.toLowerCase()); + // Ajout d'un lien pour plus d'informations + const infos = document.createElement("a"); + infos.className = "assiduite-infos"; + infos.textContent = `ℹ️`; + infos.title = "Cliquez pour plus d'informations"; + infos.target = "_blank"; + infos.href = `tableau_assiduite_actions?type=assiduite&action=details&obj_id=${assiduite.assiduite_id}`; + + bubble.appendChild(infos); + const idDiv = document.createElement("div"); idDiv.className = "assiduite-id"; getModuleImpl(assiduite).then((modImpl) => { diff --git a/app/static/js/date_utils.js b/app/static/js/date_utils.js index 57925cf9..0db9d3b0 100644 --- a/app/static/js/date_utils.js +++ b/app/static/js/date_utils.js @@ -255,6 +255,13 @@ Object.defineProperty(Date.prototype, "format", { value: function (formatString) { let iso = this.toIsoUtcString(); switch (formatString) { + case "DD/MM/YYYY": + return this.toLocaleString("fr-FR", { + day: "2-digit", + month: "2-digit", + year: "numeric", + timeZone: SCO_TIMEZONE, + }); case "DD/MM/Y HH:mm": return this.toLocaleString("fr-FR", { day: "2-digit", @@ -275,6 +282,8 @@ Object.defineProperty(Date.prototype, "format", { hour12: false, timeZone: SCO_TIMEZONE, }); + case "HH:mm": + return iso.slice(11, 16); case "YYYY-MM-DDTHH:mm": // slice : YYYY-MM-DDTHH diff --git a/app/templates/assiduites/pages/signal_assiduites_diff.j2 b/app/templates/assiduites/pages/signal_assiduites_diff.j2 index e7b016a9..f19e59ac 100644 --- a/app/templates/assiduites/pages/signal_assiduites_diff.j2 +++ b/app/templates/assiduites/pages/signal_assiduites_diff.j2 @@ -97,19 +97,12 @@ z-index: 0; } + .pointer{ + cursor: pointer; + } -{# Temporaire #} - - {% endblock styles %} {% block scripts %} @@ -121,142 +114,375 @@ {% endblock scripts %} @@ -311,8 +537,6 @@ - Sauvegarder - Afficher la photo de profil - Assiduité par défaut (aucune, present, retard, absent) - ? - Import Excel (fournie un fichier excel - avec les étudiants et les périodes préremplis) --->
@@ -330,12 +554,8 @@ - - - + +
diff --git a/app/views/assiduites.py b/app/views/assiduites.py index d77729fc..347b140c 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -1848,10 +1848,18 @@ def signal_assiduites_diff(): grp + ' ' + groups_infos.groups_titles + "" ) + moduleimpl_id = request.args.get("moduleimpl_id", -1) + try: + moduleimpl_id = int(moduleimpl_id) + except ValueError: + moduleimpl_id = -1 + return render_template( "assiduites/pages/signal_assiduites_diff.j2", etudiants=etudiants, - moduleimpl_select=_module_selector(formsemestre=formsemestre), + moduleimpl_select=_module_selector( + formsemestre=formsemestre, moduleimpl_id=moduleimpl_id + ), gr=gr_tit, nonworkdays=_non_work_days(), sco=ScoData(formsemestre=formsemestre),