Bug #65331
Une variable n'est pas remplacée par sa valeur si elle est affichée dans un champ pour modification
0%
Description
Si on utilise les fiches pour faire par exemple des modèles de réponse, on y met des variables {{ form_var_machin }}
qui fonctionnent si on envoie le message tel quel, mais si l'on souhaite modifier le texte et qu'on l'affiche dans un champ texte long pour modification, les variables ne sont plus remplacées et le mail envoyé contient {{ form_var_machin }}
à la place de la valeur.
Y a-t-il un hack pour éviter ça ? Sinon, est-il possible de corriger ?
Demandes liées
Historique
Mis à jour par Frédéric Péters il y a presque 2 ans
C'est normal on ne veut pas interpréter le "{{ rm -rf / }}" qui aurait été tapé, il n'y a pas de plan pour permettre ça.
Mis à jour par Marie Kuntz il y a presque 2 ans
Ok pour ça, mais pourquoi les variables ne sont pas remplacées dans le champ, directement ?
Ainsi on aurait dans le champ texte long :
Bonjour M. Spielberg, Nous avons bien reçu votre demande "Signalement de voirie" n°15-456. (insérer ici le commentaire de l'agent) Cordialement, La direction
Et on pourra modifier tout ou partie.
Mis à jour par Frédéric Péters il y a presque 2 ans
Pour récap,
- on a une fiche, avec un champ, dans lequel il a été écrit "Bonjour {{form_name}}", (appelons-le text)
- on a ailleurs, un formulaire avec un champ permettant de choisir une de ces fiches, (appelons le champ modele)
- après sélection, on a donc form_var_modele avec le "digest" de la fiche, form_var_modele_raw avec l'id de la fiche, form_var_modele_text avec le champ text de la fiche,
- on ajoute un champ, qu'on préremplit avec {{form_var_modele_text}}
- dedans il va donc s'écrire "Bonjour {{form_name}}", qui est le contenu du champ "text" de la fiche.
La demande serait que ça ne soit pas ça qui soit affiché, que le "Bonjour {{form_name}}" soit pris comme un gabarit, dont le rendu serait à faire sur base du contexte courant, que s'affiche "Bonjour titre du formulaire".
Imaginons maintenant un enfant qui habite la rue {{ rm -rf / }}.
- il est inscrit, il se trouve enregistré dans une fiche,
- une démarche permet d'inscrire un enfant à une activité, je choisis mon enfant,
- la page suivante c'est un champ prérempli avec son adresse,
- apparait donc dans le formulaire un champ rue avec comme contenu {{ rm -rf / }}.
Le demande de ce ticket serait que ça ne soit pas affiché {{ rm -rf / }} mais que plutôt ça soit interprété et qu'on ait un message "votre disque a bien été effacé".
On ne veut pas ça.
Ce qui a pu être écrit dans un ticket, c'est qu'on pourrait avoir un filtre, type |render_as_template, et dans le préremplissage du texte long/modèle du premier exemple, on écrirait alors {{form_var_modele_text|render_as_template}}.
Et dans le cas de l'adrese, on écrirait {{form_var_enfant_adresse}}, comme aujourd'hui, et on ferait attention à ne pas y écrire {{form_var_enfant_adresse|render_as_template}}.
(je ne retrouve pas sur le moment le ticket où j'ai pu mentionner ça).
Mis à jour par Marie Kuntz il y a presque 2 ans
- Duplique Development #49467: Interpréter les filtres djangos saisis dans un champ texte long d'une fiche ajouté