Projet

Général

Profil

Bug #38817

docutils plante la transformation rst->html quand il rencontre ?????

Ajouté par Thomas Noël il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
-
Version cible:
-
Début:
07 janvier 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Si on a ????? en résultat d'un gabarit de mail, docutils plante lors de conversion en HTML avec une erreur « (SEVERE/4) Unexpected section title or transition. »

Résultat : le courriel envoyé est en texte brut.

Le cas peut se produire si on utilise {{form_details}} et qu'une des valeurs du formulaire est ----- ou ===== ou ????? (ou toute autre succession de ponctuation). Mais ça peut arriver facilement aussi sur un {{form_var_foobar}} isolé sur une ligne.

Il faudrait voir si on peut configurer l'usage de docutils dans wcs/qommon/emails.py pour que le parser rst soit plus laxiste dans ce cas, et laisse passer la ligne comme du texte simple.


Fichiers

Révisions associées

Révision bbaa2d18 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

emails: ignore unexpected title overlines or transitions (#38817)

Historique

#2

Mis à jour par Thomas Noël il y a plus de 4 ans

  • Priorité changé de Normal à Bas

J'ai parcouru le code du parser rst de docutils, ça me semble juste impossible.

Je mets en priorité basse car ce n'est pas bloquant. De toute façon on doit éviter d'envoyer des données non contrôlées (éventuellement personnelles) dans les mails.

#3

Mis à jour par Frédéric Péters il y a plus de 4 ans

(c'est quand même bien peu évident à customiser, docutils)

Alternativement, un plan aurait été de modifier la regex :

pats['nonalphanum7bit'] = '[!-/:-@[-`{-~]'

pour en retirer les points d'interrogation (qui sont dans le range !-/) mais il y a quantité de code exécuté dès le chargement du module qui fait que la regex se trouve immédiatement répétée/compilée/intégrée, et donc pas si facile.

#4

Mis à jour par Thomas Noël il y a plus de 4 ans

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

Congrats, bien joué.

Ta solution est mieux que de juste retirer les "?" de la regex, car on peut très bien imaginer aussi des champs remplis avec des "-----" (ça a même du déjà arriver mais personne ne nous a jamais remonté le soucis, le mail arrivant "quand même" et n'étant pas lu par un robot)

#5

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit bbaa2d18bed804947558b3ef3c79eecb2bac08a5
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sat Jan 11 11:06:31 2020 +0100

    emails: ignore unexpected title overlines or transitions (#38817)
#6

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF