Projet

Général

Profil

Development #51172

API : pouvoir filtrer les événements en fonction du nombre de places disponibles

Ajouté par Marie Kuntz il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Catégorie:
-
Version cible:
-
Début:
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Pouvoir filtrer les événements en fonction du nombre de places disponibles, pour n'avoir dans les événements que ceux où il reste assez de places pour y inscrire le nombre de personnes souhaitées (ce nombre étant rempli par l'usager dans le formulaire via un champ, par exemple {{form_var_nb_places_souhaitees}}.
Cela éviterait les inscriptions en liste d'attente ou rejetées, alors que le créneau suivant pourrait accueillir ces n personnes.
Cas d'usage : inscription piscines, musées, vaccins...


Fichiers

Révisions associées

Révision 929f70d2 (diff)
Ajouté par Valentin Deniaud il y a environ 3 ans

api: allow passing minimum places count in /datetimes/ (#51172)

Historique

#1

Mis à jour par Marie Kuntz il y a environ 3 ans

  • Description mis à jour (diff)
#3

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

  • Assigné à mis à Valentin Deniaud
#4

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

Patch qui ne colle pas vraiment à la description mais plutôt au besoin client du ticket lié.

Ici il s'agit de pouvoir indiquer un nombre de places lors de l'appel à /datetimes/, et que ça influe sur l'attribut 'disabled'. Les créneaux seront ainsi grisés si on utilise template-meetings.

Et ensuite pour ce qui est d'un vrai filtrage, c'est #51160.

#5

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

  • Statut changé de Solution proposée à En cours

Oublié de prendre en compte les histoires de liste d'attente, je vais reprendre.

#6

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

Toujours dans l'esprit de coller au ticket lié.

Pour ce qui est de la description,

Cela éviterait les inscriptions en liste d'attente [...], alors que le créneaux suivants pourrait par exemple accueillir ces n personnes.

Ça ne fait pas ça, ici aussi il faudrait un paramètre en plus genre account_for_waiting_list=False pour avoir ce comportement. Et même avant ça il faudrait spécifier plus avant le cas d'usage et quelle tête on voudrait que ça ait dans le formulaire, parce que si il y a une liste d'attente c'est bien pour l'utiliser à un moment.

#7

Mis à jour par Nicolas Roche il y a environ 3 ans

Pourquoi return et non pas un raise APIError comme c'est fait ailleurs ?

Sinon, rien à dire sur le contenu du patch, mais je n'ose pas valider dans la mesure où il ne répondra peut-être pas au besoin énoncé (comme c'est précisé par Valentin ci-dessus).

#8

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

Nicolas Roche a écrit :

Pourquoi pas return et non pas un raise APIError comme c'est fait ailleurs ?

Parce qu'ailleurs l'exception est rattrapée quelque part mais ici non, mais tu as raison c'était moche j'ai changé.

Sinon, rien à dire sur le contenu du patch, mais je n'ose pas valider dans la mesure où il ne répondra peut-être pas au besoin énoncé (comme c'est précisé par Valentin ci-dessus).

Si tu es d'accord que ça répond au besoin de #51140 c'est toujours ça de pris, Marie pourra ouvrir un autre ticket pour la suite :)

#9

Mis à jour par Nicolas Roche il y a environ 3 ans

Parce qu'ailleurs l'exception est rattrapée quelque part

Oui tout me semble bon ici, mais je suis assez inquiet sur le fait que ce soit mauvais "ailleurs" où l'exception ne me semble pas rattrapée :

$ curl https://chrono.dev.publik.love/api/agenda/test-events/datetimes/?min_places=plouf
{"err":1, ...

$ curl https://chrono.dev.publik.love/api/agenda/test-rdv/meetings/cni/datetimes/?date_start=plop
Exception Type: APIError at /api/agenda/test-rdv/meetings/cni/datetimes/
Exception Value: date_start doit être au format YYYY-MM-DD

#10

Mis à jour par Frédéric Péters il y a environ 3 ans

#51181 pour les erreurs. (et dans #51182 Benjamin écrit aussi quelque chose en rapport)

#12

Mis à jour par Nicolas Roche il y a environ 3 ans

  • Statut changé de Solution proposée à Solution validée
#13

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 929f70d2ac15bd885cf3a1ec6955badda8c724a1
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Feb 17 17:30:06 2021 +0100

    api: allow passing minimum places count in /datetimes/ (#51172)
#14

Mis à jour par Frédéric Péters il y a environ 3 ans

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

Mis à jour par Marie Kuntz il y a environ 3 ans

Le paramètre à passer est donc min_places ?

#16

Mis à jour par Frédéric Péters il y a environ 3 ans

Oui.

Formats disponibles : Atom PDF