Projet

Général

Profil

Development #54746

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

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

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

api: allow changing recurrence bookings (#54746)

Historique

#1

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é
#2

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.

#3

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é
#4

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.

#5

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

  • Assigné à mis à Valentin Deniaud
#6

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

#8

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 ?

#9

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

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

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

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

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

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

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

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

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)
#14

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