Projet

Général

Profil

Development #56104

Permettre la réservation d'évènements multiples sur plusieurs agendas

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
10 août 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

#55370 ajoute le côté /datetimes/, ce ticket pour le côté /fillslots/.

Il s'agit d'étendre l'API réservation multiple de #55367 pour accepter des évènements provenant de différents agendas.

Malgré le fait que les évènements servis par /datetimes/ soient de la forme agenda_slug@event_slug, il va quand même falloir ajouter un paramètre supplémentaire ?agendas= avec les slugs des agendas concernés (le même que celui qu'on a passé à /datetimes/), afin de permettre la mise à jour des réservation (introduite par #55368).


Fichiers

Révisions associées

Révision 0cf2c621 (diff)
Ajouté par Valentin Deniaud il y a plus de 2 ans

api: factorize getting objects from list of slugs (#56104)

Révision 67f1f68f (diff)
Ajouté par Valentin Deniaud il y a plus de 2 ans

api: add endpoint to book multiple events accross several agendas (#56104)

Historique

#2

Mis à jour par Lauréline Guérin il y a plus de 2 ans

0001: _(f'invalid {objects_name}: {unknown_slugs}') la traduction va fonctionner ?

0002: r'^agenda/events/fillslots/$' idem ticket datetimes, avec un agenda.slug == 'events' ça va coincer non ?

il va quand même falloir ajouter un paramètre supplémentaire ?agendas= avec les slugs des agendas concernés (le même que celui qu'on a passé à /datetimes/), afin de permettre la mise à jour des réservation (introduite par #55368).

Il y a des cas d'usage où on voudrait faire de la réservation sans mise à jour via cette API ? Sachant que la nouvelle API agenda/(?P<agenda_identifier>[\w-]+)/events/fillslots/ fait de la mise à jour de réservation sans que ce soit possible de faire autrement ?

J'aurais tendance à imposer les mêmes paramètres pour datetimes et fillslots (les mêmes agendas slug), et même à vérifier que les agendas trouvés d'après les events correspondent bien aux agendas passés en param
(pour éviter les erreurs de paramétrage des démarches)

#3

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

Lauréline Guerin a écrit :

0001: _(f'invalid {objects_name}: {unknown_slugs}') la traduction va fonctionner ?

Les f-strings makemessages s'en sort sans problème, par contre oui « objects_name » n'est pas traduit dans mon patch (ça pourrait). Mais bon il était surtout là pour ne pas avoir à toucher aux tests des resources, ce qui n'est pas une très bonne raison, alors qu'en vrai je pense qu'on peut le remplacer par un banal et générique « slugs », personne ne nous en voudra. Et du coup je vire la f-string, qui était là pour éviter une forme à pourcentage particulièrement moche.

0002: r'^agenda/events/fillslots/$' idem ticket datetimes, avec un agenda.slug == 'events' ça va coincer non ?

Ouep, j'applique le même fix à savoir s/agenda/agendas.

J'aurais tendance à imposer les mêmes paramètres pour datetimes et fillslots (les mêmes agendas slug), et même à vérifier que les agendas trouvés d'après les events correspondent bien aux agendas passés en param

Oui très bien ça me va de bien restreindre au cas d'usage cible.

#4

Mis à jour par Lauréline Guérin il y a plus de 2 ans

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

dans la méthode get_already_booked_events, le if est toujours nécessaire ?

#5

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 67f1f68fd69bbf294fad47ff6cf60560785ffda2
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Aug 10 15:38:23 2021 +0200

    api: add endpoint to book multiple events accross several agendas (#56104)

commit 0cf2c62199a1dfbc4d61ab1775d12fcf127e94ba
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Aug 11 16:03:09 2021 +0200

    api: factorize getting objects from list of slugs (#56104)
#6

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