Development #44159
Annulation d’une réservation
0%
Description
On devrait pouvoir depuis chrono annuler une réservation, individuelle sur un événement, ou d'un rendez-vous. (ou globalement pour un événement, #44157).
Ça devrait pouvoir déclencher le nécessaire du côté de la demande : on aurait passé au moment de la réservation une URL où faire un POST (plutôt que magiquement tenter de déterminer ça), genre ...formulaire/12/jump/trigger/cancel, et le workflow y serait configuré pour gérer ça, comme le workflow de paiement gère un trigger "paid".
Fichiers
Révisions associées
manager: add booking cancellation (#44159)
Historique
Mis à jour par Valentin Deniaud il y a presque 4 ans
Frédéric Péters a écrit :
comme le workflow de paiement gère un trigger "paid"
Et le code qui permet de signer une telle requête vers w.c.s. est dans combo, je pense que c'est la seule brique qui avait ce besoin. Je le bouge dans hobo, et je l'importe avec le try/except qui va bien pour ne pas introduire de dépendance trop forte ?
Mis à jour par Frédéric Péters il y a presque 4 ans
Une copie de plus (il est déjà aussi dans hobo et passerelle).
Mis à jour par Valentin Deniaud il y a presque 4 ans
- Fichier 0001-utils-add-signature-tools-44159.patch 0001-utils-add-signature-tools-44159.patch ajouté
- Fichier 0002-manager-add-booking-cancellation-44159.patch 0002-manager-add-booking-cancellation-44159.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
0001 qui ajoute le nécessaire pour signer est donc un simple cp depuis combo.
À discuter :- Pour l'instant il est nécessaire d'être manager de l'agenda pour pouvoir supprimer des résas, à voir si ça ne correspond pas mieux aux usages d'autoriser aussi le rôle de visualisation
- Les résas sur les évènements sont présentées sous forme de listes d'objets, gadjo me laisse donc ajouter une croix à côté de manière classique, par contre pour les rdv c'est mort, je me contente d'un bouton « Annuler »
- Si l'URL pour rappeler wcs n'a pas été passée à la réservation, j'affiche un warning sur la page de confirmation de l'annulation. Problème gadjo là encore, le div warningnotice ne s'affiche pas dans la popup (ok en pleine page), il faut trouver quelque chose d'autre ou patcher gadjo.
Mis à jour par Thomas Noël il y a presque 4 ans
Sur 0001 : copie aussi les tests... question de couverture, et puis parce que les tests c'est bien. Et modifie aussi les copyrights (combo->chrono, 2018->2020)
Mis à jour par Thomas Noël il y a presque 4 ans
Sur 0002 : je dirais qu'il faut d'abord tenter le POST sur l'URL et si ça ne répond pas OK afficher un message qui indique le pépin et demande une sur-validation pour vraiment supprimer.
Mis à jour par Valentin Deniaud il y a presque 4 ans
Thomas Noël a écrit :
Sur 0002 : je dirais qu'il faut d'abord tenter le POST sur l'URL et si ça ne répond pas OK afficher un message qui indique le pépin et demande une sur-validation pour vraiment supprimer.
OK pour rattraper le raise_for_status dans la vue et afficher autre chose qu'une 500, par contre je n'arrive pas à imaginer un parcours intelligible de sur-validation. Tu cliques, on te dit que ça marche pas, et que tu peux recliquer. Mais est-ce que le reclic tente quand même à nouveau l'appel ws ? Donc à la fin peut-être que ça a marché, peut-être pas ? Ou est-ce qu'il ne retente pas, à ce moment là il faut dire à l'agent « si tu veux retenter, ne reclique pas, rafraichit la page »...
(et puis ça fait sortir le code des sentiers battus, il faut mettre un flag en session ou fortement triturer le formulaire, bref je serais pour ne pas permettre l'annulation si l'appel foire, de toute façon il faudra faire une action globale qui rattrape le coup pour mettre dans le statut annulé côté demande, l'appel à l'API cancel de chrono pourra se faire là)
Mis à jour par Thomas Noël il y a presque 4 ans
Valentin Deniaud a écrit :
OK pour rattraper le raise_for_status dans la vue et afficher autre chose qu'une 500, par contre je n'arrive pas à imaginer un parcours intelligible de sur-validation. (...)
Dans mes faibles connaissance Django ça se gère via le form_valid qui va tenter le POST et déclarer un form_invalid si ça ne marche pas, et dans ce cas on réaffiche le form avec une case à cocher "supprimer de toute façon" ...?
(et puis ça fait sortir le code des sentiers battus, il faut mettre un flag en session ou fortement triturer le formulaire, bref je serais pour ne pas permettre l'annulation si l'appel foire, de toute façon il faudra faire une action globale qui rattrape le coup pour mettre dans le statut annulé côté demande, l'appel à l'API cancel de chrono pourra se faire là)
Le problème classique sera que la démarche correspondante n'existe plus, donc, non, faut pouvoir "forcer".
Mis à jour par Valentin Deniaud il y a presque 4 ans
Mis à jour par Valentin Deniaud il y a presque 4 ans
Valentin Deniaud a écrit :
- Si l'URL pour rappeler wcs n'a pas été passée à la réservation, j'affiche un warning sur la page de confirmation de l'annulation. Problème gadjo là encore, le div warningnotice ne s'affiche pas dans la popup (ok en pleine page), il faut trouver quelque chose d'autre ou patcher gadjo.
Trouvé la parade, il faut mettre le div à l'intérieur de la balise form.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Pour l'instant il est nécessaire d'être manager de l'agenda pour pouvoir supprimer des résas, à voir si ça ne correspond pas mieux aux usages d'autoriser aussi le rôle de visualisation
Je viens de me poser la question et je pense que ce serait plus adapté de permettre ça aux agents qui peuvent consulter l'agenda (le "manage" étant plutôt de l'ordre de la gestion du paramétrage de l'agenda).
Si l'URL pour rappeler wcs n'a pas été passée à la réservation, j'affiche un warning sur la page de confirmation de l'annulation.
Sur ce point j'hésite pas mal mais je serais presque à ne pas permettre l'annulation depuis chrono s'il y a backoffice_url mais pas cancel_callback_url, sous-entendu ça se gère depuis la démarche, dans la popup afficher que ça se gère depuis la demande avec en lien backoffice_url.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Fichier 0001-utils-add-signature-tools-44159.patch 0001-utils-add-signature-tools-44159.patch ajouté
- Fichier 0002-manager-add-booking-cancellation-44159.patch 0002-manager-add-booking-cancellation-44159.patch ajouté
Remarques prises en compte.
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Ok pour moi.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 1864d7466d342d11ad8a3c7a6281112b17513a20 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Wed Jul 8 16:10:53 2020 +0200 manager: add booking cancellation (#44159) commit 10caec88f6f57912e85b5562df7d823ea721e533 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Wed Jul 8 16:07:55 2020 +0200 utils: add signature tools (#44159)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
utils: add signature tools (#44159)