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): def get_handler(self, config):
return load_object(self.handler_spec)(config) return load_object(self.handler_spec)(config)
def get_default_subject(self): def get_default_subject(self, **data):
handler = self.get_handler(self.config) host_title = data.get('host_title')
return "Changes for {} -> {}".format( local_title = data.get('local_title')
handler.host_title, handler.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): def sample_data(self, request):
handler = self.get_handler(request.rattail_config) handler = self.get_handler(request.rattail_config)

View file

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