Project

General

Profile

Development #55424

statistiques : possibilité de regroupement par extra_data

Added by Valentin Deniaud 3 months ago. Updated about 2 months ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
06 Jul 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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

Revision c0e2726e (diff)
Added by Valentin Deniaud 2 months ago

api: filter statistics by extra_data (#55424)

History

#1

Updated by Valentin Deniaud 3 months ago

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.

#2

Updated by Paul Marillonnet 2 months 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 ?

#3

Updated by Valentin Deniaud 2 months 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.

#4

Updated by Valentin Deniaud 2 months 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)
#5

Updated by Frédéric Péters about 2 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF