diff --git a/packages/dsw-mailer/dsw/mailer/model.py b/packages/dsw-mailer/dsw/mailer/model.py index cddeffa8..e3c3a7d6 100644 --- a/packages/dsw-mailer/dsw/mailer/model.py +++ b/packages/dsw-mailer/dsw/mailer/model.py @@ -168,6 +168,14 @@ def __init__(self, *, message_id: str, subject: str, subject_prefix: bool, self.parts: list[TemplateDescriptorPart] = [] self.modes: list[str] = [] + @property + def subject_template(self) -> str: + # trans block limits use of Jinja, if it looks like a template, then + # handle trans yourselves + if '{{' not in self.subject and '{%' not in self.subject: + return '{% trans %}' + self.subject + '{% endtrans %}' + return self.subject + @staticmethod def load_from_file(data: dict) -> TemplateDescriptor: result = TemplateDescriptor( diff --git a/packages/dsw-mailer/dsw/mailer/templates.py b/packages/dsw-mailer/dsw/mailer/templates.py index d49af3f4..e2c41c7a 100644 --- a/packages/dsw-mailer/dsw/mailer/templates.py +++ b/packages/dsw-mailer/dsw/mailer/templates.py @@ -157,7 +157,7 @@ def _load_template(self, path: pathlib.Path, html_template = None plain_template = None subject_template = self._make_str_jinja2( - str_template='{% trans %}' + descriptor.subject + '{% endtrans %}', + str_template=descriptor.subject_template, ) attachments = [] html_images = []