From 055bbf9f7fd5282606df0817bcfe1125560e1d80 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 27 Jun 2024 21:22:19 +0200 Subject: [PATCH] Corrige 68f64ba383 pour #948 --- app/templates/assiduites/widgets/tableau.j2 | 10 ++-- app/views/assiduites.py | 55 +++++++++++++-------- 2 files changed, 39 insertions(+), 26 deletions(-) diff --git a/app/templates/assiduites/widgets/tableau.j2 b/app/templates/assiduites/widgets/tableau.j2 index daf15cd46..77f6d8384 100644 --- a/app/templates/assiduites/widgets/tableau.j2 +++ b/app/templates/assiduites/widgets/tableau.j2 @@ -209,17 +209,15 @@ url.searchParams.set("order", order); url.searchParams.set("order_col", order_col.split(":")[1]); - location.href = url.href + location.href = url.href; })); const selecteur = document.querySelector("#moduleimpl_select"); - console.log(selecteur); - selecteur.addEventListener('change', ()=>{ - console.log("selecteur", selecteur.value) + selecteur?.addEventListener('change', ()=>{ const url = new URL(location.href); - url.searchParams.set("moduleimpl_id", selecteur.value); - location.href = url.href + url.searchParams.set("moduleimpl_id", selecteur?.value); + location.href = url.href; }); }); diff --git a/app/views/assiduites.py b/app/views/assiduites.py index b060aa77e..0c137c673 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -429,9 +429,11 @@ def _get_dates_from_assi_form( ] ): form.set_error( - "La date de début n'appartient à aucun semestre de l'étudiant" - if formsemestre is None - else "La date de début n'appartient pas au semestre", + ( + "La date de début n'appartient à aucun semestre de l'étudiant" + if formsemestre is None + else "La date de début n'appartient pas au semestre" + ), form.date_debut, ) @@ -443,9 +445,11 @@ def _get_dates_from_assi_form( ] ): form.set_error( - "La date de fin n'appartient à aucun semestre de l'étudiant" - if not formsemestre - else "La date de fin n'appartient pas au semestre", + ( + "La date de fin n'appartient à aucun semestre de l'étudiant" + if not formsemestre + else "La date de fin n'appartient pas au semestre" + ), form.date_fin, ) @@ -619,9 +623,9 @@ def bilan_etud(): ) # préparation du selecteur de moduleimpl - + annee_sco = _get_anne_sco_from_request() moduleimpl_select: str = _module_selector_multiple( - etud, moduleimpl_id, no_default=True + etud, moduleimpl_id, no_default=True, annee_sco=annee_sco ) # Préparation de la page @@ -1371,6 +1375,19 @@ def visu_assi_group(): ) +def _get_anne_sco_from_request() -> int | None: + """La valeur du paramètreannee_sco de la requête GET, + ou None si absent""" + annee_sco: str | None = request.args.get("annee_sco", None) + # Vérification de l'année scolaire + if annee_sco is not None: + try: + return int(annee_sco) + except (ValueError, TypeError): + pass + return None + + def _prepare_tableau( data: liste_assi.AssiJustifData, filename: str = "tableau-assiduites", @@ -1382,12 +1399,16 @@ def _prepare_tableau( titre="Évènements enregistrés pour cet étudiant", cache_key: str = "", force_options: dict[str, object] = None, + annee_sco: int | None = None, ) -> tuple[bool, Response | str]: """ Prépare un tableau d'assiduités / justificatifs Cette fonction récupère dans la requête les arguments : + annee_sco : int -> XXX + n_page : int -> XXX + page_number : int -> XXX show_pres : bool -> Affiche les présences, par défaut False show_reta : bool -> Affiche les retard, par défaut False show_desc : bool -> Affiche les descriptions, par défaut False @@ -1401,7 +1422,7 @@ def _prepare_tableau( show_pres: bool | str = request.args.get("show_pres", False) show_reta: bool | str = request.args.get("show_reta", False) show_desc: bool | str = request.args.get("show_desc", False) - + annee_sco = _get_anne_sco_from_request() if annee_sco is None else annee_sco nb_ligne_page: int = request.args.get("nb_ligne_page") # Vérification de nb_ligne_page try: @@ -1418,15 +1439,6 @@ def _prepare_tableau( fmt = request.args.get("fmt", "html") - annee_sco: str | None = request.args.get("annee_sco", None) - - # Vérification de l'année scolaire - if annee_sco is not None: - try: - annee_sco = int(annee_sco) - except (ValueError, TypeError): - annee_sco = None - # Ordre ordre: tuple[str, str | bool] = None ordre_col: str = request.args.get("order_col", None) @@ -2295,11 +2307,14 @@ def _module_selector_multiple( moduleimpl_id: int = None, only_form: FormSemestre = None, no_default: bool = False, + annee_sco: int | None = None, ) -> str: """menu HTML