Improve default subject logic for importer warning emails

This commit is contained in:
Lance Edgar 2021-07-22 12:02:10 -05:00
parent e2b3e91ee5
commit ef92bec06e
2 changed files with 14 additions and 8 deletions

View file

@ -157,10 +157,16 @@ class ImporterEmail(Email):
def get_handler(self, config):
return load_object(self.handler_spec)(config)
def get_default_subject(self):
handler = self.get_handler(self.config)
return "Changes for {} -> {}".format(
handler.host_title, handler.local_title)
def get_default_subject(self, **data):
host_title = data.get('host_title')
local_title = data.get('local_title')
if not (host_title and local_title):
handler = self.get_handler(self.config)
if not host_title:
host_title = handler.host_title
if not local_title:
local_title = handler.local_title
return "Changes for {} -> {}".format(host_title, local_title)
def sample_data(self, request):
handler = self.get_handler(request.rattail_config)

View file

@ -396,10 +396,10 @@ class Email(object):
prefix = "[STAGE] {}".format(prefix)
return prefix
def get_default_subject(self):
def get_default_subject(self, **data):
return self.default_subject
def get_subject_template(self):
def get_subject_template(self, **data):
"""
Returns the template to be used to build the subject.
"""
@ -409,7 +409,7 @@ class Email(object):
return template
# or if this email defines a custom default, use that
default = self.get_default_subject()
default = self.get_default_subject(**data)
if default != self.universal_subject:
return default
@ -425,7 +425,7 @@ class Email(object):
:rtype: str
"""
if template is UNSPECIFIED:
template = self.get_subject_template()
template = self.get_subject_template(**data)
if template and render:
return Template(template).render(**data)
return template