From dcdf6a801263eee1306400a8b4fee9b544374434 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sun, 2 Jun 2024 10:05:15 +0200 Subject: [PATCH] =?UTF-8?q?Assiduite:=20supprime=20lien=20saisie=20diff?= =?UTF-8?q?=C3=A9r=C3=A9e=20+=20lien=20choix=20semaine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scodoc/sco_formsemestre_status.py | 15 ------------- .../pages/signal_assiduites_hebdo.j2 | 19 ++++++++-------- app/views/assiduites.py | 22 ++++++++++++++----- 3 files changed, 27 insertions(+), 29 deletions(-) diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py index 2bd32f2b3..fc7df7311 100755 --- a/app/scodoc/sco_formsemestre_status.py +++ b/app/scodoc/sco_formsemestre_status.py @@ -884,21 +884,6 @@ def _make_listes_sem(formsemestre: FormSemestre) -> str: """ ) - if can_edit_abs: - H.append( - f""" -
- - (Saisie différée) -
- """ - ) - H.append("") # /sem-groups-assi if partition_is_empty: H.append( diff --git a/app/templates/assiduites/pages/signal_assiduites_hebdo.j2 b/app/templates/assiduites/pages/signal_assiduites_hebdo.j2 index 8422b3b2f..a312fb6c8 100644 --- a/app/templates/assiduites/pages/signal_assiduites_hebdo.j2 +++ b/app/templates/assiduites/pages/signal_assiduites_hebdo.j2 @@ -214,7 +214,7 @@ ] // [0]=Lundi ... [6]=Dimanche -> à 00h00 //Une fonction d'action quand un bouton est cliqué - // 3 possibilités : + // 3 possibilités : // - assiduite_id = null -> créer nv assi avec état du bouton // - assiduite_id non null et bouton coché == etat assi -> suppression de l'assiduité // - assiduite_id non null et bouton coché != etat assi -> modification de l'assiduité @@ -418,14 +418,14 @@ // Peuplement des boutons en fonction des assiduités let boutons = ` - - ` if (!non_present) { - boutons = ``+boutons; } @@ -437,8 +437,8 @@ const deb = new Date(assi.date_debut); const fin = new Date(assi.date_fin); - // si dates == periode -> cocher bouton correspondant - // Sinon supprimer boutons et mettre case "rouge" + tooltip + // si dates == periode -> cocher bouton correspondant + // Sinon supprimer boutons et mettre case "rouge" + tooltip if (deb.isSame(morningPeriod.deb, "minutes") && fin.isSame(morningPeriod.fin, "minutes")) { let etat = assi.etat.toLowerCase(); @@ -468,7 +468,7 @@ const deb = new Date(assi.date_debut); const fin = new Date(assi.date_fin); - // si dates == periode -> cocher bouton correspondant + // si dates == periode -> cocher bouton correspondant // Sinon supprimer boutons et mettre case "rouge" + tooltip if (deb.isSame(afternoonPeriod.deb, "minutes") && fin.isSame(afternoonPeriod.fin, "minutes")) { @@ -504,7 +504,7 @@ let target = e.target; let parent = target.parentElement; - + let isCancelled = await actionButton(target, !target.checked); if (isCancelled) { e.preventDefault(); @@ -690,7 +690,7 @@ } } - + document.getElementById("text-matin").addEventListener("click", (e)=>{ e.preventDefault(); @@ -801,6 +801,7 @@ document.addEventListener("DOMContentLoaded", ()=>{ {{moduleimpl_select | safe}} + autre semaine

diff --git a/app/views/assiduites.py b/app/views/assiduites.py index d3115f9cd..6286024d2 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -1980,7 +1980,7 @@ def signal_assiduites_hebdo(): # Vérification semaine dans format iso 8601 et formsemestre regex_iso8601 = r"^\d{4}-W\d{2}$" - if not re.match(regex_iso8601, week): + if week and not re.match(regex_iso8601, week): raise ScoValueError("Semaine invalide", dest_url=request.referrer) fs_deb_iso8601 = formsemestre.date_debut.strftime("%Y-W%W") @@ -1989,10 +1989,12 @@ def signal_assiduites_hebdo(): # Utilisation de la propriété de la norme iso 8601 # les chaines sont triables par ordre alphanumérique croissant # et produiront le même ordre que les dates par ordre chronologique croissant - if week < fs_deb_iso8601 or week > fs_fin_iso8601: - flash( - "La semaine n'est pas dans le semestre, choisissez la semaine sur laquelle saisir l'assiduité" - ) + if (not week) or week < fs_deb_iso8601 or week > fs_fin_iso8601: + if week: + flash( + """La semaine n'est pas dans le semestre, + choisissez la semaine sur laquelle saisir l'assiduité""" + ) return sco_gen_cal.calendrier_choix_date( date_debut=formsemestre.date_debut, date_fin=formsemestre.date_fin, @@ -2076,6 +2078,15 @@ def signal_assiduites_hebdo(): for key, val in jours.items(): hebdo_jours.append((key in non_travail, val)) + url_choix_semaine = url_for( + "assiduites.signal_assiduites_hebdo", + group_ids=",".join(map(str, groups_infos.group_ids)), + week="", + scodoc_dept=g.scodoc_dept, + formsemestre_id=groups_infos.formsemestre_id, + moduleimpl_id=moduleimpl_id, + ) + return render_template( "assiduites/pages/signal_assiduites_hebdo.j2", title="Assiduité: saisie hebdomadaire", @@ -2091,6 +2102,7 @@ def signal_assiduites_hebdo(): formsemestre_id=formsemestre_id, dept_id=g.scodoc_dept_id, ), + url_choix_semaine=url_choix_semaine, )