diff --git a/crm/api/activities.py b/crm/api/activities.py index b9c87bc7..8f9df31e 100644 --- a/crm/api/activities.py +++ b/crm/api/activities.py @@ -33,10 +33,11 @@ def get_deal_activities(name): activities = [] calls = [] + notes = [] creation_text = "created this deal" if lead: - activities, calls = get_lead_activities(lead) + activities, calls, notes = get_lead_activities(lead) creation_text = "converted the lead to this deal" activities.append({ @@ -127,11 +128,12 @@ def get_deal_activities(name): activities.append(activity) calls = calls + get_linked_calls(name) + notes = notes + get_linked_notes(name) activities.sort(key=lambda x: x["creation"], reverse=True) activities = handle_multiple_versions(activities) - return activities, calls + return activities, calls, notes def get_lead_activities(name): get_docinfo('', "CRM Lead", name) @@ -236,11 +238,12 @@ def get_lead_activities(name): activities.append(activity) calls = get_linked_calls(name) + notes = get_linked_notes(name) activities.sort(key=lambda x: x["creation"], reverse=True) activities = handle_multiple_versions(activities) - return activities, calls + return activities, calls, notes @redis_cache() def get_attachments(name): @@ -303,4 +306,12 @@ def get_linked_calls(name): "note", ], ) - return calls or [] \ No newline at end of file + return calls or [] + +def get_linked_notes(name): + notes = frappe.db.get_all( + "CRM Note", + filters={"reference_docname": name}, + fields=['name', 'title', 'content', 'owner', 'modified'], + ) + return notes or [] diff --git a/frontend/src/components/Activities.vue b/frontend/src/components/Activities.vue index 2fb77ddf..6a93c285 100644 --- a/frontend/src/components/Activities.vue +++ b/frontend/src/components/Activities.vue @@ -717,7 +717,7 @@ /> { + transform: ([versions, calls, notes]) => { if (calls?.length) { calls.forEach((doc) => { doc.show_recording = false @@ -839,20 +839,10 @@ const all_activities = createResource({ } }) } - return { versions, calls } + return { versions, calls, notes } }, }) -const notes = createListResource({ - type: 'list', - doctype: 'CRM Note', - cache: ['Notes', doc.value.data.name], - fields: ['name', 'title', 'content', 'owner', 'modified'], - filters: { reference_docname: doc.value.data.name }, - orderBy: 'modified desc', - pageLength: 999, -}) - const tasks = createListResource({ type: 'list', doctype: 'CRM Task', @@ -901,7 +891,8 @@ const activities = computed(() => { (a, b) => new Date(a.creation) - new Date(b.creation) ) } else if (props.title == 'Notes') { - return notes.data?.sort( + if (!all_activities.data?.notes) return [] + return all_activities.data.notes.sort( (a, b) => new Date(a.creation) - new Date(b.creation) ) } @@ -1018,7 +1009,7 @@ async function deleteNote(name) { doctype: 'CRM Note', name, }) - notes.reload() + all_activities.reload() } // Tasks