From 6e753cf11896350ce2d5ba72d8e7beefa6e35c47 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Wed, 15 Nov 2023 00:33:19 +0100 Subject: [PATCH] refactor: deduplication logic --- .../doctype/communication/communication.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/frappe/core/doctype/communication/communication.py b/frappe/core/doctype/communication/communication.py index cac44bae83..aa598b9f6c 100644 --- a/frappe/core/doctype/communication/communication.py +++ b/frappe/core/doctype/communication/communication.py @@ -463,20 +463,13 @@ class Communication(Document, CommunicationEmailMixin): add_contact_links_to_communication(self, contact_name) def deduplicate_timeline_links(self): - if self.timeline_links: - links, duplicate = [], False + if not self.timeline_links: + return - for l in self.timeline_links: - t = (l.link_doctype, l.link_name) - if not t in links: - links.append(t) - else: - duplicate = True - - if duplicate: - self.timeline_links.clear() - for l in links: - self.add_link(link_doctype=l[0], link_name=l[1]) + unique_links = {(link.link_doctype, link.link_name) for link in self.timeline_links} + self.timeline_links = [] + for doctype, name in unique_links: + self.add_link(doctype, name) def add_link(self, link_doctype, link_name, autosave=False): self.append("timeline_links", {"link_doctype": link_doctype, "link_name": link_name})