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 }}