Project

General

Profile

Développement #54746

Permettre de modifier son inscription à un évènement récurrent

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

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

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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.


Files

Associated revisions

Revision 96b10d05 (diff)
Added by Valentin Deniaud over 3 years ago

api: allow changing recurrence bookings (#54746)

History

#1

Updated by Valentin Deniaud over 3 years ago

  • Has duplicate Développement #55368: api fillslots (réservation multiple), gestion mise à jour de réservations added
#2

Updated by Valentin Deniaud over 3 years ago

  • Status changed from Nouveau to Rejeté

Description plus complète dans le nouveau ticket.

#3

Updated by Valentin Deniaud over 3 years ago

  • Has duplicate deleted (Développement #55368: api fillslots (réservation multiple), gestion mise à jour de réservations)
#4

Updated by Valentin Deniaud over 3 years ago

  • Status changed from Rejeté to Nouveau

Valentin Deniaud a écrit :

Description plus complète dans le nouveau ticket.

Pas le même besoin, #55368#note-5.

#5

Updated by Valentin Deniaud over 3 years ago

  • Assignee set to Valentin Deniaud
#6

Updated by Valentin Deniaud over 3 years ago

#8

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

        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 ?

#9

Updated by Valentin Deniaud over 3 years ago

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

#10

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

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

Updated by Valentin Deniaud over 3 years ago

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.

#12

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

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

Updated by Valentin Deniaud over 3 years ago

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

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