From 4eb506ee4548e836cbed63a4ce3be45678ea80b7 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Mon, 14 Oct 2024 23:07:14 +0530 Subject: [PATCH] fix: load and show attachments in attachments tab --- crm/api/activities.py | 13 ++++++++----- .../src/components/Activities/Activities.vue | 17 +++++++++++++++-- .../components/Activities/AttachmentArea.vue | 8 ++++++++ 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 frontend/src/components/Activities/AttachmentArea.vue diff --git a/crm/api/activities.py b/crm/api/activities.py index 31d74580..d56e5776 100644 --- a/crm/api/activities.py +++ b/crm/api/activities.py @@ -35,10 +35,11 @@ def get_deal_activities(name): calls = [] notes = [] tasks = [] + attachments = [] creation_text = "created this deal" if lead: - activities, calls, notes, tasks = get_lead_activities(lead) + activities, calls, notes, tasks, attachments = get_lead_activities(lead) creation_text = "converted the lead to this deal" activities.append({ @@ -134,11 +135,12 @@ def get_deal_activities(name): calls = calls + get_linked_calls(name) notes = notes + get_linked_notes(name) tasks = tasks + get_linked_tasks(name) + attachments = attachments + get_attachments('CRM Deal', name) activities.sort(key=lambda x: x["creation"], reverse=True) activities = handle_multiple_versions(activities) - return activities, calls, notes, tasks + return activities, calls, notes, tasks, attachments def get_lead_activities(name): get_docinfo('', "CRM Lead", name) @@ -248,19 +250,20 @@ def get_lead_activities(name): calls = get_linked_calls(name) notes = get_linked_notes(name) tasks = get_linked_tasks(name) + attachments = get_attachments('CRM Lead', name) activities.sort(key=lambda x: x["creation"], reverse=True) activities = handle_multiple_versions(activities) - return activities, calls, notes, tasks + return activities, calls, notes, tasks, attachments @redis_cache() def get_attachments(doctype, name): return frappe.db.get_all( "File", filters={"attached_to_doctype": doctype, "attached_to_name": name}, - fields=["name", "file_name", "file_url", "file_size", "is_private"], - ) + fields=["name", "file_name", "file_url", "file_size", "is_private", "creation", "owner"], + ) or [] def handle_multiple_versions(versions): activities = [] diff --git a/frontend/src/components/Activities/Activities.vue b/frontend/src/components/Activities/Activities.vue index 3422b25c..d8cf42a6 100644 --- a/frontend/src/components/Activities/Activities.vue +++ b/frontend/src/components/Activities/Activities.vue @@ -104,6 +104,15 @@ +
+
+
+ +
+
+
{ + transform: ([versions, calls, notes, tasks, attachments]) => { if (calls?.length) { calls.forEach((doc) => { doc.show_recording = false @@ -533,7 +543,7 @@ const all_activities = createResource({ } }) } - return { versions, calls, notes, tasks } + return { versions, calls, notes, tasks, attachments } }, }) @@ -621,6 +631,9 @@ const activities = computed(() => { } else if (title.value == 'Notes') { if (!all_activities.data?.notes) return [] return sortByCreation(all_activities.data.notes) + } else if (title.value == 'Attachments') { + if (!all_activities.data?.attachments) return [] + return sortByCreation(all_activities.data.attachments) } activities.forEach((activity) => { diff --git a/frontend/src/components/Activities/AttachmentArea.vue b/frontend/src/components/Activities/AttachmentArea.vue new file mode 100644 index 00000000..d05d5ab3 --- /dev/null +++ b/frontend/src/components/Activities/AttachmentArea.vue @@ -0,0 +1,8 @@ + +