diff --git a/app/templates/assiduites/pages/etat_absence_date.j2 b/app/templates/assiduites/pages/etat_absence_date.j2
index 41c99fe31..03aaf5aae 100644
--- a/app/templates/assiduites/pages/etat_absence_date.j2
+++ b/app/templates/assiduites/pages/etat_absence_date.j2
@@ -1,5 +1,6 @@
-
Présence lors de l'évaluation {{eval.title}}
-Réalisé le {{eval.jour}} de {{eval.heure_debut}} à {{eval.heure_fin}}
+Présence du groupe {{group_title}} le {{date_debut.strftime("%d/%m/%Y")}}
+de {{date_debut.strftime("%H:%M")}} à {{date_fin.strftime("%H:%M")}}
+
@@ -7,7 +8,7 @@
Nom
- Assiduité
+ Présence
|
diff --git a/app/views/assiduites.py b/app/views/assiduites.py
index 0969c4aed..7e8bcd422 100644
--- a/app/views/assiduites.py
+++ b/app/views/assiduites.py
@@ -736,16 +736,13 @@ def visu_assiduites_group():
@scodoc
@permission_required(Permission.ScoView)
def get_etat_abs_date():
- evaluation = {
+ infos_date = {
"jour": request.args.get("jour"),
"heure_debut": request.args.get("heure_debut"),
"heure_fin": request.args.get("heure_fin"),
"title": request.args.get("desc"),
}
- date: str = evaluation["jour"]
group_ids: list[int] = request.args.get("group_ids", None)
- etudiants: list[dict] = []
-
if group_ids is None:
group_ids = []
else:
@@ -760,10 +757,10 @@ def get_etat_abs_date():
]
date_debut = scu.is_iso_formated(
- f"{evaluation['jour']}T{evaluation['heure_debut'].replace('h',':')}", True
+ f"{infos_date['jour']}T{infos_date['heure_debut'].replace('h',':')}", True
)
date_fin = scu.is_iso_formated(
- f"{evaluation['jour']}T{evaluation['heure_fin'].replace('h',':')}", True
+ f"{infos_date['jour']}T{infos_date['heure_fin'].replace('h',':')}", True
)
assiduites: Assiduite = Assiduite.query.filter(
@@ -773,15 +770,20 @@ def get_etat_abs_date():
assiduites, Assiduite, date_debut, date_fin, False
)
+ etudiants: list[dict] = []
for etud in etuds:
assi = assiduites.filter_by(etudid=etud["etudid"]).first()
etat = ""
- if assi != None and assi.etat != 0:
+ if assi is not None and assi.etat != 0:
etat = scu.EtatAssiduite.inverse().get(assi.etat).name
etudiant = {
- "nom": f'{etud["nomprenom"]}',
+ "nom": f"""{etud["nomprenom"]}""",
"etat": etat,
}
@@ -790,7 +792,7 @@ def get_etat_abs_date():
etudiants = list(sorted(etudiants, key=lambda x: x["nom"]))
header: str = html_sco_header.sco_header(
- page_title=evaluation["title"],
+ page_title=infos_date["title"],
init_qtip=True,
)
@@ -799,7 +801,9 @@ def get_etat_abs_date():
render_template(
"assiduites/pages/etat_absence_date.j2",
etudiants=etudiants,
- eval=evaluation,
+ group_title=groups_infos.groups_titles,
+ date_debut=date_debut,
+ date_fin=date_fin,
),
html_sco_header.sco_footer(),
).build()
diff --git a/tests/api/test_api_assiduites.py b/tests/api/test_api_assiduites.py
index 6c346ac4e..895d4c047 100644
--- a/tests/api/test_api_assiduites.py
+++ b/tests/api/test_api_assiduites.py
@@ -13,6 +13,9 @@ from tests.api.setup_test_api import (
APIError,
api_headers,
api_admin_headers,
+ check_failure_get,
+ check_failure_post,
+ check_fields,
)
ETUDID = 1
@@ -44,76 +47,6 @@ COUNT_FIELDS = {"compte": int, "journee": int, "demi": int, "heure": float}
TO_REMOVE = []
-def check_fields(data: dict, fields: dict = None):
- """
- Cette fonction permet de vérifier que le dictionnaire data
- contient les bonnes clés et les bons types de valeurs.
-
- Args:
- data (dict): un dictionnaire (json de retour de l'api)
- fields (dict, optional): Un dictionnaire représentant les clés et les types d'une réponse.
- """
- if fields is None:
- fields = ASSIDUITES_FIELDS
- assert set(data.keys()) == set(fields.keys())
- for key in data:
- if key in ("moduleimpl_id", "desc", "user_id", "external_data"):
- assert (
- isinstance(data[key], fields[key]) or data[key] is None
- ), f"error [{key}:{type(data[key])}, {data[key]}, {fields[key]}]"
- else:
- assert isinstance(
- data[key], fields[key]
- ), f"error [{key}:{type(data[key])}, {data[key]}, {fields[key]}]"
-
-
-def check_failure_get(path: str, headers: dict, err: str = None):
- """
- Cette fonction vérifiée que la requête GET renvoie bien un 404
-
- Args:
- path (str): la route de l'api
- headers (dict): le token d'auth de l'api
- err (str, optional): L'erreur qui est sensée être fournie par l'api.
-
- Raises:
- APIError: Une erreur car la requête a fonctionné (mauvais comportement)
- """
-
- try:
- GET(path=path, headers=headers)
- # ^ Renvoi un 404
- except APIError as api_err:
- if err is not None:
- assert api_err.payload["message"] == err
- else:
- raise APIError("Le GET n'aurait pas du fonctionner")
-
-
-def check_failure_post(path: str, headers: dict, data: dict, err: str = None):
- """
- Cette fonction vérifiée que la requête POST renvoie bien un 404
-
- Args:
- path (str): la route de l'api
- headers (dict): le token d'auth
- data (dict): un dictionnaire (json) à envoyer
- err (str, optional): L'erreur qui est sensée être fournie par l'api.
-
- Raises:
- APIError: Une erreur car la requête a fonctionné (mauvais comportement)
- """
-
- try:
- data = POST_JSON(path=path, headers=headers, data=data)
- # ^ Renvoi un 404
- except APIError as api_err:
- if err is not None:
- assert api_err.payload["message"] == err
- else:
- raise APIError("Le GET n'aurait pas du fonctionner")
-
-
def create_data(etat: str, day: str, module: int = None, desc: str = None):
"""
Permet de créer un dictionnaire assiduité