Bug #70646
Les liens dans les cellules textes contenant des gabarits ne fonctionnent plus en recette
0%
Description
A l'origine constaté dans #69911 et corrigé sur https://portail-saone-et-loire.test.entrouvert.org/manage/pages/25/. Page équivalente en production non concernée.
Les URL que j'ai corrigé avaient un href contenaient :
%7B%7B%20eservices_url%20%7D%7Dapa/simulateur-de-demande-allocation-per-sonnalisee-d-autonomie-apa-nouveau/?cancelurl=%7B%7B%20portal_url%20%7D%7Dapa/
Ce qui donnait un lien cassé sur l'URL https://portail-saone-et-loire.test.entrouvert.org/%7B%7B%20eservices_url%20%7D%7Dapa/simulateur-de-demande-allocation-per-sonnalisee-d-autonomie-apa-nouveau/?cancelurl=%7B%7B%20portal_url%20%7D%7Dapa/
J'ai remplacé par :
{{ eservices_url }}apa/simulateur-de-demande-allocation-per-sonnalisee-d-autonomie-apa-nouveau/?cancelurl={{ portal_url }}apa/
et le lien est rétabli.
Lorsque je vais sur une autre instance de recette, https://portail-usager-hautes-alpes.test.entrouvert.org/manage/pages/25/, que je n'ai pas encore corrigée, je vois le même type de lien avec substitution : <a href="%7B%7B%20eservices_url%20%7D%7Dapa/premiere-demande-d-allocation-personnalisee-d-autonomie-apa-a-domicile/?cancelurl=%7B%7B%20portal_url%20%7D%7Dapa/">Je souhaite faire une première demande d'APA à domicile</a>
En front office, cela donne donc aussi un lien cassé. Sur cette page https://portail-usager-hautes-alpes.test.entrouvert.org/apa/ lien cassé sur https://portail-usager-hautes-alpes.test.entrouvert.org/apa/%7B%7B%20eservices_url%20%7D%7Dapa/premiere-demande-d-allocation-personnalisee-d-autonomie-apa-a-domicile/?cancelurl=%7B%7B%20portal_url%20%7D%7Dapa/.
Ces pages n'ont pas été modifiées récemment. Cela fait penser à une mise à jour récente en recette qui aurait changé le comportement sur les cellules textes.
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus d'un an
Migration sur les titres qui parse l'HTML qui quote les {{}} dans les liens et bardaf.
Mis à jour par Frédéric Péters il y a plus d'un an
Pour exécution locale des corrections, je lance ceci :
import re import urllib.parse from combo.data.models import TextCell def sub_variadic_url(match): attribute = match.group(1) url = match.group(2) if '%7B%7B' in url or '%7B%25' in url: url = urllib.parse.unquote(url) return '%s="%s"' % (attribute, url) for cell in TextCell.objects.filter(page__snapshot__isnull=True).filter(text__contains='%7B'): orig_text = cell.text cell.text = re.sub(r'(href|src)="(.*?)"', sub_variadic_url, cell.text) if cell.text != orig_text: print('saving cell', cell) cell.save()
Mis à jour par Lauréline Guérin il y a plus d'un an
- Fichier 0001-data-fix-textcell-title-migration-70646.patch 0001-data-fix-textcell-title-migration-70646.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Split de la migration en 0058 et 0059, pour éviter de faire un changement de schéma et de données dans une même migration.
Les modifs:
Dans la 0059, si cell.title est déjà setté (en recette par exemple, ou en local), on ne fait rien:
if cell.title: # already set in previous version of 0058_textcell_title continue
Cellules filtrées sur page__snapshot__isnull=True
Fix des urls:
cell.text = re.sub(r'(href|src)="(.*?)"', sub_variadic_url, text)
(et la migration reverse reset cell.title, c'est un détail, mais ça permet de revert juste 0059 sans avoir besoin d'aller jusqu'à revert 0058 pour avoir des données clean)
Mis à jour par Frédéric Péters il y a plus d'un an
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a plus d'un an
- Statut changé de Solution validée à Résolu (à déployer)
commit 6d2b0f9e0b67f70a9787c4cc3949a0f745cc9da4 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Oct 25 11:39:49 2022 +0200 data: fix textcell title migration (#70646)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
data: fix textcell title migration (#70646)