This commit is contained in:
Emmanuel Viennet 2024-06-27 21:22:19 +02:00
parent 408c340525
commit 055bbf9f7f
2 changed files with 39 additions and 26 deletions

View File

@ -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;
});
});

View File

@ -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 <select> pour choix moduleimpl
Prend les semestres de l'année, sauf si only_form est indiqué.
Prend les semestres de l'année indiquée, sauf si only_form est indiqué.
"""
modimpls_by_formsemestre = etud.get_modimpls_by_formsemestre(scu.annee_scolaire())
modimpls_by_formsemestre = etud.get_modimpls_by_formsemestre(
scu.annee_scolaire() if annee_sco is None else annee_sco
)
choices = OrderedDict()
for formsemestre_id in modimpls_by_formsemestre:
formsemestre: FormSemestre = FormSemestre.query.get(formsemestre_id)