Development #51172
API : pouvoir filtrer les événements en fonction du nombre de places disponibles
0%
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
Historique
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Fichier 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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.
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.
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Fichier 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch ajouté
- Statut changé de En cours à Solution proposée
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.
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).
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Fichier 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch ajouté
Nicolas Roche a écrit :
Pourquoi pas
return
et non pas unraise 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 :)
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
Mis à jour par Frédéric Péters il y a environ 3 ans
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Fichier 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch 0001-api-allow-passing-minimum-places-count-in-datetimes-.patch ajouté
Rebasé sur #51181 pour la gestion des APIError.
Mis à jour par Nicolas Roche il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
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)
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
api: allow passing minimum places count in /datetimes/ (#51172)