Browse Source

Merge pull request #1132 from anandpdoshi/anand-may-27

[fix] email threading - try to match by sender if not subject field is defined
version-14
Rushabh Mehta 10 years ago
parent
commit
52415d4538
1 changed files with 21 additions and 12 deletions
  1. +21
    -12
      frappe/email/doctype/email_account/email_account.py

+ 21
- 12
frappe/email/doctype/email_account/email_account.py View File

@@ -192,18 +192,27 @@ class EmailAccount(Document):
parent = frappe.get_doc(parent.reference_doctype, parent = frappe.get_doc(parent.reference_doctype,
parent.reference_name) parent.reference_name)


if not parent and self.append_to and subject_field and sender_field:
# try and match by subject and sender
# if sent by same sender with same subject,
# append it to old coversation

subject = re.sub("Re[^:]*:\s*", "", email.subject)

parent = frappe.db.get_all(self.append_to, filters={
sender_field: email.from_email,
subject_field: ("like", "%{0}%".format(subject)),
"creation": (">", (get_datetime() - relativedelta(days=10)).strftime(DATE_FORMAT))
}, fields="name")
if not parent and self.append_to and sender_field:
if subject_field:
# try and match by subject and sender
# if sent by same sender with same subject,
# append it to old coversation

subject = re.sub("Re[^:]*:\s*", "", email.subject)

parent = frappe.db.get_all(self.append_to, filters={
sender_field: email.from_email,
subject_field: ("like", "%{0}%".format(subject)),
"creation": (">", (get_datetime() - relativedelta(days=10)).strftime(DATE_FORMAT))
}, fields="name")

else:
# try and match by sender only
# as there is no subject field, it implies that threading isn't by subject, but by sender only

parent = frappe.db.get_all(self.append_to, filters={
sender_field: email.from_email,
}, fields="name")


if parent: if parent:
parent = frappe.get_doc(self.append_to, parent[0].name) parent = frappe.get_doc(self.append_to, parent[0].name)


Loading…
Cancel
Save