Assiduite: tableau etat_abs_date: export excel

This commit is contained in:
Emmanuel Viennet 2023-12-09 16:03:17 +01:00
parent 4db178ea52
commit 0b6f60897b
2 changed files with 14 additions and 3 deletions

View File

@ -14,14 +14,16 @@
de {{date_debut.strftime("%H:%M")}} à {{date_fin.strftime("%H:%M")}} de {{date_debut.strftime("%H:%M")}} à {{date_fin.strftime("%H:%M")}}
</h2> </h2>
<div>
{% if evaluation %} {% if evaluation %}
<div>Assiduité lors de l'évaluation Assiduité lors de l'évaluation
<a class="stdlink" href="{{ <a class="stdlink" href="{{
url_for('notes.evaluation_listenotes', url_for('notes.evaluation_listenotes',
scodoc_dept=g.scodoc_dept, evaluation_id=evaluation.id) scodoc_dept=g.scodoc_dept, evaluation_id=evaluation.id)
}}"><em>{{evaluation.description or ''}}</em></a> }}"><em>{{evaluation.description or ''}}</em></a>
{% endif %} {% endif %}
<div>{{description}}</div> <a style="margin-left:32px;" href="{{request.url}}&fmt=xlsx">{{scu.ICON_XLS|safe}}</a>
</div>
{{table.html()|safe}} {{table.html()|safe}}

View File

@ -1050,15 +1050,17 @@ class RowEtudWithAssi(RowEtud):
def etat_abs_date(): def etat_abs_date():
"""Tableau de l'état d'assiduité d'un ou plusieurs groupes """Tableau de l'état d'assiduité d'un ou plusieurs groupes
sur la plage de dates date_debut, date_fin. 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 date_debut, date_fin: format ISO
evaluation_id: optionnel, évaluation concernée, pour titre et liens. evaluation_id: optionnel, évaluation concernée, pour titre et liens.
date_debut, date_fin en ISO date_debut, date_fin en ISO
fmt : format export (xls, défaut html)
""" """
# Récupération des paramètres de la requête # Récupération des paramètres de la requête
date_debut_str = request.args.get("date_debut") date_debut_str = request.args.get("date_debut")
date_fin_str = request.args.get("date_fin") date_fin_str = request.args.get("date_fin")
fmt = request.args.get("fmt", "html")
group_ids = request.args.getlist("group_ids", int) group_ids = request.args.getlist("group_ids", int)
evaluation_id = request.args.get("evaluation_id") evaluation_id = request.args.get("evaluation_id")
evaluation: Evaluation = ( evaluation: Evaluation = (
@ -1104,6 +1106,13 @@ def etat_abs_date():
row.add_etud_cols() row.add_etud_cols()
table.add_row(row) 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( return render_template(
"assiduites/pages/etat_abs_date.j2", "assiduites/pages/etat_abs_date.j2",
date_debut=date_debut, date_debut=date_debut,