Projet

Général

Profil

Development #55424

statistiques : possibilité de regroupement par extra_data

Ajouté par Valentin Deniaud il y a presque 3 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
06 juillet 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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.


Fichiers

Révisions associées

Révision c0e2726e (diff)
Ajouté par Valentin Deniaud il y a presque 3 ans

api: filter statistics by extra_data (#55424)

Historique

#1

Mis à jour par Valentin Deniaud il y a presque 3 ans

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

Mis à jour par Paul Marillonnet il y a presque 3 ans

  • Statut changé de Solution proposée à 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

Mis à jour par Valentin Deniaud il y a presque 3 ans

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

Mis à jour par Valentin Deniaud il y a plus de 2 ans

  • Statut changé de Solution validée à 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

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF