From 5159073720d222e6cde4ac53568968f67cd273df Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 23 Oct 2015 17:23:21 +0530 Subject: [PATCH] [fix] Show CC in the footer --- .../doctype/communication/communication.py | 18 +++++++++++------ frappe/email/bulk.py | 20 +++++++++++++------ frappe/templates/emails/standard.html | 1 - 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/frappe/core/doctype/communication/communication.py b/frappe/core/doctype/communication/communication.py index 75f1cecc8d..f845afe70d 100644 --- a/frappe/core/doctype/communication/communication.py +++ b/frappe/core/doctype/communication/communication.py @@ -132,9 +132,10 @@ class Communication(Document): def get_recipients_and_cc(self, recipients, cc, fetched_from_email_account=False): self.all_email_addresses = [] self.sent_email_addresses = [] + self.previous_email_sender = None if not recipients: - recipients = self.get_recipients() + recipients = self.get_recipients(fetched_from_email_account=fetched_from_email_account) if not cc: cc = self.get_cc(recipients, fetched_from_email_account=fetched_from_email_account) @@ -143,6 +144,10 @@ class Communication(Document): # email was already sent to the original recipient by the sender's email service original_recipients, recipients = recipients, [] + # send email to the sender of the previous email in the thread which this email is a reply to + if self.previous_email_sender: + recipients.append(self.previous_email_sender) + # cc that was received in the email original_cc = split_emails(self.cc) @@ -206,11 +211,16 @@ class Communication(Document): {"default_outgoing": 1, "enable_outgoing": 1}, ["email_id", "always_use_account_email_id_as_sender"], as_dict=True) or frappe._dict() - def get_recipients(self): + def get_recipients(self, fetched_from_email_account=False): """Build a list of email addresses for To""" # [EDGE CASE] self.recipients can be None when an email is sent as BCC recipients = split_emails(self.recipients) + if fetched_from_email_account and self.in_reply_to: + # add sender of previous reply + self.previous_email_sender = frappe.db.get_value("Communication", self.in_reply_to, "sender") + recipients.append(self.previous_email_sender) + if recipients: # exclude email accounts exclude = [d[0] for d in @@ -235,10 +245,6 @@ class Communication(Document): cc += self.get_assignees() cc += self.get_starrers() - if fetched_from_email_account and self.in_reply_to: - # add sender of previous reply - cc.append(frappe.db.get_value("Communication", self.in_reply_to, "sender")) - if cc: # exclude email accounts, unfollows, recipients and unsubscribes exclude = [d[0] for d in diff --git a/frappe/email/bulk.py b/frappe/email/bulk.py index 023a7e36ff..e122e7e90a 100644 --- a/frappe/email/bulk.py +++ b/frappe/email/bulk.py @@ -83,7 +83,8 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc expose_recipients=expose_recipients, unsubscribe_method=unsubscribe_method, unsubscribe_params=unsubscribe_params, - unsubscribe_message=unsubscribe_message + unsubscribe_message=unsubscribe_message, + show_as_cc=show_as_cc ) email_content = email_content.replace("", unsubscribe_link.html) @@ -148,10 +149,17 @@ def check_bulk_limit(recipients): BulkLimitCrossedError) def get_unsubscribe_link(reference_doctype, reference_name, - email, recipients, expose_recipients, unsubscribe_method, unsubscribe_params, unsubscribe_message): + email, recipients, expose_recipients, show_as_cc, + unsubscribe_method, unsubscribe_params, unsubscribe_message): - unsubscribe_email = recipients if expose_recipients else [email] - unsubscribe_email = _("This email was sent to {0}").format(", ".join(unsubscribe_email)) + email_sent_to = recipients if expose_recipients else [email] + email_sent_cc = ", ".join([e for e in email_sent_to if e in show_as_cc]) + email_sent_to = ", ".join([e for e in email_sent_to if e not in show_as_cc]) + + if email_sent_cc: + email_sent_message = _("This email was sent to {0} and copied to {1}").format(email_sent_to, email_sent_cc) + else: + email_sent_message = _("This email was sent to {0}").format(email_sent_to) if not unsubscribe_message: unsubscribe_message = _("Unsubscribe from this list") @@ -168,12 +176,12 @@ def get_unsubscribe_link(reference_doctype, reference_name,

""".format( unsubscribe_url = unsubscribe_url, - email=unsubscribe_email, + email=email_sent_message, unsubscribe_message=unsubscribe_message ) text = "\n{email}\n\n{unsubscribe_message}: {unsubscribe_url}".format( - email=unsubscribe_email, + email=email_sent_message, unsubscribe_message=unsubscribe_message, unsubscribe_url=unsubscribe_url ) diff --git a/frappe/templates/emails/standard.html b/frappe/templates/emails/standard.html index 4a9cf795bb..fa8981a37b 100644 --- a/frappe/templates/emails/standard.html +++ b/frappe/templates/emails/standard.html @@ -8,7 +8,6 @@
- {{ content }} {{ signature }}