stats/report : les 5 modes v2 honorés (la route avait été ramenée à la logique v1 complet/synthese) + filename avec suffixe de mode
1 changed file +6 −3
modified
jobka/web.py
+6 −3
@@ -366,19 +366,22 @@ def stats_report(period: str = "30j", | ||
| 366 | 366 | from_: str | None = Query(None, alias="from"), |
| 367 | 367 | to: str | None = None, |
| 368 | 368 | mode: str = "complet"): |
| 369 | − """Rapport PDF estampillé Groupe-KA (complet ou synthèse 2 pages).""" | |
| 369 | + """Rapport PDF estampillé Groupe-KA — 5 modes : complet | synthese | | |
| 370 | + tendances | repartitions | donnees (mode inconnu -> complet).""" | |
| 370 | 371 | from . import kapdf, statsdash |
| 371 | 372 | if period not in ("auj", "7j", "30j", "3m", "6m", "12m", "annee", "tout"): |
| 372 | 373 | period = "30j" |
| 374 | + if mode not in kapdf.REPORT_MODES: | |
| 375 | + mode = "complet" | |
| 373 | 376 | dash = statsdash.compute(period, from_, to) |
| 374 | 377 | data = kapdf.GroupeKAReport( |
| 375 | 378 | site={"wordmark": "Job·Ka", "accent": "#0c8599", |
| 376 | 379 | "domain": "www.job-ka.com", |
| 377 | 380 | "tagline": "Tous les emplois des employeurs québécois"}, |
| 378 | 381 | dashboard=dash, |
| 379 | − mode="synthese" if mode == "synthese" else "complet", | |
| 382 | + mode=mode, | |
| 380 | 383 | ).build() |
| 381 | − fname = kapdf.filename("job-ka", period) | |
| 384 | + fname = kapdf.filename("job-ka", period, mode) | |
| 382 | 385 | return Response( |
| 383 | 386 | content=data, media_type="application/pdf", |
| 384 | 387 | headers={"Content-Disposition": f'attachment; filename="{fname}"'}) |
| 385 | 388 | |