Project

General

Profile

Développement #56104

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

Added by Valentin Deniaud over 3 years ago. Updated over 3 years ago.

Status:
Fermé
Priority:
Normal
Category:
-
Target version:
-
Start date:
10 August 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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).


Files

Associated revisions

Revision 0cf2c621 (diff)
Added by Valentin Deniaud over 3 years ago

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

Revision 67f1f68f (diff)
Added by Valentin Deniaud over 3 years ago

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

History

#2

Updated by Lauréline Guérin over 3 years ago

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

Updated by Valentin Deniaud over 3 years ago

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

Updated by Lauréline Guérin over 3 years ago

  • Status changed from Solution proposée to Solution validée

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

#5

Updated by Valentin Deniaud over 3 years ago

  • Status changed from Solution validée to 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

Updated by Frédéric Péters over 3 years ago

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

Also available in: Atom PDF