diff --git a/app/templates/assiduites/pages/etat_abs_date.j2 b/app/templates/assiduites/pages/etat_abs_date.j2
index 09ce965ef..d40b61e8c 100644
--- a/app/templates/assiduites/pages/etat_abs_date.j2
+++ b/app/templates/assiduites/pages/etat_abs_date.j2
@@ -14,14 +14,16 @@
de {{date_debut.strftime("%H:%M")}} à {{date_fin.strftime("%H:%M")}}
+
{% if evaluation %}
-
{{table.html()|safe}}
diff --git a/app/views/assiduites.py b/app/views/assiduites.py
index e62b43325..cfe15723c 100644
--- a/app/views/assiduites.py
+++ b/app/views/assiduites.py
@@ -1050,15 +1050,17 @@ class RowEtudWithAssi(RowEtud):
def etat_abs_date():
"""Tableau de l'état d'assiduité d'un ou plusieurs groupes
sur la plage de dates date_debut, date_fin.
- group_ids=6573 : id de(s) groupe(s)
+ group_ids : ids de(s) groupe(s)
date_debut, date_fin: format ISO
evaluation_id: optionnel, évaluation concernée, pour titre et liens.
date_debut, date_fin en ISO
+ fmt : format export (xls, défaut html)
"""
# Récupération des paramètres de la requête
date_debut_str = request.args.get("date_debut")
date_fin_str = request.args.get("date_fin")
+ fmt = request.args.get("fmt", "html")
group_ids = request.args.getlist("group_ids", int)
evaluation_id = request.args.get("evaluation_id")
evaluation: Evaluation = (
@@ -1104,6 +1106,13 @@ def etat_abs_date():
row.add_etud_cols()
table.add_row(row)
+ if fmt.startswith("xls"):
+ return scu.send_file(
+ table.excel(),
+ filename=f"assiduite-eval-{date_debut.isoformat()}",
+ mime=scu.XLSX_MIMETYPE,
+ suffix=scu.XLSX_SUFFIX,
+ )
return render_template(
"assiduites/pages/etat_abs_date.j2",
date_debut=date_debut,