From 3b0790f9504110c6924994cdfebda3401d1c7715 Mon Sep 17 00:00:00 2001 From: Alexey Bezhan Date: Fri, 15 Dec 2017 17:10:45 +0000 Subject: [PATCH] Add Template.get_reply_to_text helper method Returns either template's reply_to text if set or the related field from the default service record. Return value can be used as default for `Notification.reply_to_text` when per-notification value is not provided. --- app/models.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/models.py b/app/models.py index 2f196c7a5..469bfff4a 100644 --- a/app/models.py +++ b/app/models.py @@ -607,6 +607,10 @@ class TemplateBase(db.Model): def service_letter_contact_id(cls): return db.Column(UUID(as_uuid=True), db.ForeignKey('service_letter_contacts.id'), nullable=True) + @declared_attr + def service_letter_contact(cls): + return db.relationship('ServiceLetterContact', viewonly=True) + @property def reply_to(self): if self.template_type == LETTER_TYPE: @@ -623,6 +627,19 @@ class TemplateBase(db.Model): else: raise ValueError('Unable to set sender for {} template'.format(self.template_type)) + def get_reply_to_text(self): + if self.template_type == LETTER_TYPE: + if self.service_letter_contact_id is not None: + return self.service_letter_contact.contact_block + else: + return self.service.get_default_letter_contact() + elif self.template_type == EMAIL_TYPE: + return self.service.get_default_reply_to_email_address() + elif self.template_type == SMS_TYPE: + return self.service.get_default_sms_sender() + else: + return None + def _as_utils_template(self): if self.template_type == EMAIL_TYPE: return PlainTextEmailTemplate(