Development #54746
Permettre de modifier son inscription à un évènement récurrent
0%
Description
#54332 permet la réservation d'une semaine type, c'est à dire l'inscription à un évènement récurrent à l'année.
Sauf que tout de suite après vient le besoin de modifier cette réservation, actuellement c'est impossible (sauf à aller faire quelques centaines d'appels pour gérer les réservations une à une, bref).
Il faut que, si une réservation lundi/mardi toute l'année a été posée, un nouvel appel à l'api avec le même user_external_id et spécifiant mardi/mercredi supprime les réservations du lundi et réserve le mercredi.
Fichiers
Révisions associées
Historique
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Dupliqué par Development #55368: api fillslots (réservation multiple), gestion mise à jour de réservations ajouté
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Statut changé de Nouveau à Rejeté
Description plus complète dans le nouveau ticket.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Dupliqué par Development #55368: api fillslots (réservation multiple), gestion mise à jour de réservations supprimé
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Statut changé de Rejeté à Nouveau
Valentin Deniaud a écrit :
Description plus complète dans le nouveau ticket.
Pas le même besoin, #55368#note-5.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 0001-api-allow-changing-recurrence-bookings-54746.patch 0001-api-allow-changing-recurrence-bookings-54746.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 0001-api-allow-changing-recurrence-bookings-54746.patch 0001-api-allow-changing-recurrence-bookings-54746.patch ajouté
Nouvelle version plus mieux.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
events_to_unbook = list( agenda.event_set.filter(booking__user_external_id=user_external_id) .exclude(pk__in=events_to_book) .values_list('pk', flat=True) )
S'il existe des events non récurrents sur cet agenda, ça risque de les unbook ?
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 0001-api-allow-changing-recurrence-bookings-54746.patch 0001-api-allow-changing-recurrence-bookings-54746.patch ajouté
Lauréline Guerin a écrit :
S'il existe des events non récurrents sur cet agenda, ça risque de les unbook ?
Yep, j'ai ajouté un primary_event__isnull=False
et un bout de test associé.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 0001-api-allow-changing-recurrence-bookings-54746.patch 0001-api-allow-changing-recurrence-bookings-54746.patch ajouté
- Statut changé de Solution validée à Solution proposée
Je me suis rendu compte d'un vrai problème : si on appelle à nouveau avec les mêmes paramètres, ça ne marche pas parce qu'on se mange
if not events_to_book.exists(): if full_events: raise APIError(_('all events are all full'), err_class='all events are all full') raise APIError(_('no event recurrences to book'), err_class='no event recurrences to book')
Avec le comportement de modification introduit ici je trouve que ces contrôles n'ont plus de sens, je propose de juste les enlever (un workflow pourra toujours checker que booking_count != 0
si jamais c'est important qu'un appel pose toujours des réservations).
En plus il faut permettre d'envoyer le paramètre 'slots' vide pour annuler toutes les résas, mais je vais ouvrir un autre ticket pour ne pas bloquer ici et parce que ça impacte l'autre api de réservation multiple.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 96b10d052bc60e78f23cbd30a9eb94236d48c417 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Jul 5 17:29:16 2021 +0200 api: allow changing recurrence bookings (#54746)
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
api: allow changing recurrence bookings (#54746)