Development #41832
refuser l'import d'un workflow qui utilise des modèle de courriel inexistants
0%
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
Historique
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.
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)
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.
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
Mis à jour par Lauréline Guérin il y a presque 4 ans
- Fichier 0001-workflows-check-on-import-if-mail_template-exists-41.patch 0001-workflows-check-on-import-if-mail_template-exists-41.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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)
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)
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
workflows: check on import if mail_template exists (#41832)