Développement #55424
statistiques : possibilité de regroupement par extra_data
0%
Description
Cas d'usage, un évènement repas et derrière en fait plusieurs menus, végé&co, on voudrait dans les statistiques de réservation pouvoir les différencier.
Idée, envoyer le menu choisi lors de l'appel fillslot. Puis dans les statistiques ajouter un filtre qui permette de regrouper selon les clés présentes dans les attributs extra_data des réservations.
Files
Associated revisions
History
Updated by Valentin Deniaud over 3 years ago
- File 0001-api-filter-statistics-by-extra_data-55424.patch 0001-api-filter-statistics-by-extra_data-55424.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
On pouvait déjà filtrer par la valeur de user_was_present, j'ai choisi d'étendre ça plutôt que de faire un autre filtre à côté, en me disant que la possibilité de combiner les deux était inutile (5 menus à la cantine + présent/absent/non renseigné aurait donné 15 point de données par jour).
À discuter, on ne peut pas juste exposer toutes les clés présentes dans extra_data, il y en aurait trop. Donc soit un nouveau champ à l'agenda « Regroupements pour les statistiques », soit se baser sur le champ « Booking check filters » qui renseigne déjà des clés de extra_data. Je suis parti sur l'option 2 pour faire au plus simple, ça devrait couvrir le cas d'usage Publik Famille.
Updated by Paul Marillonnet over 3 years ago
- Status changed from Solution proposée to Solution validée
Ok, petite gymnastique mentale pour se mettre dans le bain, mais c’est joli :)
Du détail, mais j’en aurais profité pour inverser les deux for
dans la double itération
for bookings in bookings_by_day.values():
for group, data in bookings_by_group.items():
data.append(bookings.get(group))
parce que c’est (je trouve) la façon intuitive dont on se représente ce que fait ce bout de code — d’abord on prend les réservations de chaque groupe, et on ajoute les données en jour par jour, non ?
Updated by Valentin Deniaud over 3 years ago
Paul Marillonnet a écrit :
d’abord on prend les réservations de chaque groupe, et on ajoute les données en jour par jour, non ?
Yep et ça induit même une petite simplification, poussé ça sur la branche.
Updated by Valentin Deniaud over 3 years ago
- Status changed from Solution validée to Résolu (à déployer)
commit c0e2726e678f827ad26dff7dc2d61af7e08a154a Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Wed Jul 7 11:30:56 2021 +0200 api: filter statistics by extra_data (#55424)
Updated by Frédéric Péters over 3 years ago
- Status changed from Résolu (à déployer) to Solution déployée
api: filter statistics by extra_data (#55424)