Development #56820
Pouvoir fonctionner sans l'URL de wcs dans des champs de Booking
0%
Description
Actuellement sur Booking on a des champs des destinés à stocker des URL concernant la démarche qui a initié la réservation :
- backoffice_url
- form_url
- cancel_callback_url
Ça complique les choses lorsque l'on veut migrer le nom de domaine d'une instance.
Peut-être stocker des URL relatifs et générer les URL absolus dans les vues ?
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 2 ans
À la réception itérer dans KNOWN_SERVICES et si service connu modifier l'URL pour commencer par {{whatever_url}}; attention alors à échapper correctement si qui dans l'URL initiale aurait pu ressembler à un gabarit. Ou faire sans gabarit et ad hoc, remplacer par genre publik://whatever/le chemin/ et dans requests_wrapper si le protocole est publik:// chercher dans KNOWN_SERVICES pour faire la correspondance.
Mis à jour par Thomas Noël il y a plus de 2 ans
Frédéric Péters a écrit :
remplacer par genre publik://whatever/le chemin/ et dans requests_wrapper si le protocole est publik:// chercher dans KNOWN_SERVICES pour faire la correspondance.
J'aime bien cette idée.
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Emmanuel Cazenave
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Fichier 0001-agendas-use-custom-urls-in-bookings-56820.patch 0001-agendas-use-custom-urls-in-bookings-56820.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
J'ai pris l'option publik:// .
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
Aussi je ne me lance pas dans une migration, ça pourra se faire au cas par cas si besoin.
Mis à jour par Thomas Noël il y a plus de 2 ans
Emmanuel Cazenave a écrit :
Discuté ensemble au bureau :Aussi je ne me lance pas dans une migration, ça pourra se faire au cas par cas si besoin.
- une migration pourrait prendre de trèèès longues minutes (voire pire vu les volumes sur certains sites)
- or elle n'est pas obligatoire, les deux formes d'URL fonctionnent sans soucis (ça n'est en réalité utile que pour aider à un changement d'URL de site, encore rare)
- au fur et à mesure les rendez-vous en format historique vont disparaitre
Bref, effectivement, ça ne vaut pas la peine.
Et si on juge un jour que si, c'est nécessaire, alors ça pourrait tout à fait être ajouté en dehors de ce patch, avec une commande spécifique qui ferait la modif des url, qui s'exécuterait alors que le service chrono est déjà démarré ; pas de downtime, c'est mieux.
Mis à jour par Thomas Noël il y a plus de 2 ans
Relecture après autre causerie au bureau : je trouve que le «translate_url» n'est effectivement pas très explicite et arrive un peu au milieu de nulle part.
Est-ce qu'on ne serait pas plus explicite à créer un module chrono/utils/publik.py avec deux fonctions translate_to_publik_url() et translate_from_publik_url() ... Et ces fonctions pourraient commencer par :
function translate_to_publik_url(url): known_services = getattr(settings, 'KNOWN_SERVICES', None) if not known_services: return url ...
afin qu'on pige bien que cette affaire dépend d'un éventuel settings.KNOWN_SERVICES ?
(Bien sûr mon idée derrière ça est que chrono/utils/publik.py soit le même partout et finisse pas trouver son chemin vers hobo.utils ... ah, les rêves)
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Fichier 0001-agendas-use-custom-urls-in-bookings-56820.patch 0001-agendas-use-custom-urls-in-bookings-56820.patch ajouté
Thomas Noël a écrit :
avec deux fonctions translate_to_publik_url() et translate_from_publik_url() ... Et ces fonctions pourraient commencer par :
Oui c'est plus clair comme ça, j'ai mis ça dans un chrono/utils/urls.py qui me semble plus explicite que publik.py.
afin qu'on pige bien que cette affaire dépend d'un éventuel settings.KNOWN_SERVICES ?
J'ai mis tes trois lignes qui me semblent tout à fait raisonnables, par contre ça ne va pas de les mettre tout au début de la fonction, genre par exemple dans translate_from_publik_url
, doit venir avant le fait que si c'est pas un url de type publik:// on renvoie l'URL tel quel.
Mis à jour par Frédéric Péters il y a plus de 2 ans
(je préférerais laisser urls.py aux fichiers urls.py de routing de django)
Mis à jour par Valentin Deniaud il y a plus de 2 ans
Je trouverais le diff serait plus joli si
- cancel_callback_url=payload.get('cancel_callback_url', ''), + cancel_callback_url=translate_to_publik_url(payload.get('backoffice_url')),
(et il y a déjà get_event_detail
où c'est fait comme ça)
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Fichier 0001-agendas-use-custom-urls-in-bookings-56820.patch 0001-agendas-use-custom-urls-in-bookings-56820.patch ajouté
Frédéric Péters a écrit :
(je préférerais laisser urls.py aux fichiers urls.py de routing de django)
publik_urls.py
Valentin Deniaud a écrit :
Je trouverais le diff serait plus joli si
Fait.
Mis à jour par Thomas Noël il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Moi j'aurais vraiment appelé ça utils.publik (au lieu de utils.publik_url) dans l'idée qu'il y aura un jour d'autres choses "publik" dedans.
Mais sinon c'est tout bon, donc tu fais cette modif ou pas, je valide.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
Emmanuel Cazenave a écrit :
Valentin Deniaud a écrit :
Je trouverais le diff serait plus joli si
Fait.
Un saut de ligne résiduel ligne 648 empêche ce patch d'atteindre la perfection.
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 3b9c1370c97713f41b1a80c9fdf868bb33bafb0f Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Tue Sep 21 14:20:26 2021 +0200 agendas: use custom urls in bookings (#56820)
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
agendas: use custom urls in bookings (#56820)