Projet

Général

Profil

Development #41832

refuser l'import d'un workflow qui utilise des modèle de courriel inexistants

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
17 avril 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On importe un workflow utilisant un modèle de courrier, sur une plateforme qui n'a pas de modèle de courrier.

Lors de son utilisation, on a l'erreur « référence à un modèle de courieel invalide » (sic, corrigé rapido)

Mais quand on va dans l'action concernée, on ne voit pas le soucis car l'absence de modèle fait que rien n'est affiché ou désactivable.


Fichiers

Révisions associées

Révision a44a12e5 (diff)
Ajouté par Lauréline Guérin il y a presque 4 ans

workflows: check on import if mail_template exists (#41832)

Historique

#2

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

En amont on pourrait voir comment déclencher une WorkflowImportError en cas d'import d'un tel workflow.

#3

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

Pour "montrer" le soucis à l'admin qui viendrait comprendre l'erreur, je propose d'afficher self.mail_template s'il est défini, même si l'option est désactivée (par l'absence de MailTemplate) :

diff --git a/wcs/workflows.py b/wcs/workflows.py
index 6cb4a841..ae8d634a 100644
--- a/wcs/workflows.py
+++ b/wcs/workflows.py
@@ -2515,9 +2515,11 @@ class SendmailWorkflowStatusItem(WorkflowStatusItem):
     def add_parameters_widgets(self, form, parameters, prefix='', formdef=None):
         super(SendmailWorkflowStatusItem, self).add_parameters_widgets(
                 form, parameters, prefix=prefix, formdef=formdef)
+        use_mail_templates = bool((get_publisher().has_site_option('mail-templates')
+                and MailTemplate.count()) or self.mail_template)
         subject_body_attrs = {}
         if 'subject' in parameters or 'body' in parameters:
-            if get_publisher().has_site_option('mail-templates') and MailTemplate.count():
+            if use_mail_templates:
                 subject_body_attrs = {
                     'data-dynamic-display-value': '',
                     'data-dynamic-display-child-of': '%smail_template' % prefix,
@@ -2536,7 +2538,7 @@ class SendmailWorkflowStatusItem(WorkflowStatusItem):
                      validation_function=ComputedExpressionWidget.validate_template,
                      value=self.subject, size=40,
                      attrs=subject_body_attrs)
-        if 'mail_template' in parameters and get_publisher().has_site_option('mail-templates') and MailTemplate.count():
+        if 'mail_template' in parameters and use_mail_templates:
             form.add(SingleSelectWidget,
                     '%smail_template' % prefix,
                     title=_('Mail Template'),

Ca irait au relecteur ? (dans l'idée que j'écrive le test ensuite)

#4

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

Et en fait non, il faut régler en amont.

Pour dépanner un workflow importé en attendant, il faut plutôt poser un template "bidon" afin de faire apparaitre l'option.

#5

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

  • Tracker changé de Bug à Development
  • Sujet changé de workflow avec modèle de courrier alors qu'aucun modèle n'existe à refuser l'import d'un workflow qui utilise des modèle de courriel inexistants
#6

Mis à jour par Lauréline Guérin il y a presque 4 ans

  • Assigné à mis à Lauréline Guérin
#7

Mis à jour par Lauréline Guérin il y a presque 4 ans

#8

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

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

Ok (tu peux retirer le return inutile)

#9

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit a44a12e54b5c13b48a7e7380d5f5da67b5e57c0d
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Fri Jul 3 15:53:00 2020 +0200

    workflows: check on import if mail_template exists (#41832)
#10

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

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

Formats disponibles : Atom PDF