From bf854fc3cc5cebc212d209e37d26cbf796c7f680 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 30 Aug 2023 20:04:08 +0530 Subject: [PATCH] fix: revamped call log page --- crm/crm/doctype/crm_call_log/crm_call_log.py | 32 +- frontend/src/components/Activities.vue | 4 +- frontend/src/pages/CallLog.vue | 321 ++++++++++++------- frontend/src/pages/CallLogs.vue | 3 +- 4 files changed, 240 insertions(+), 120 deletions(-) diff --git a/crm/crm/doctype/crm_call_log/crm_call_log.py b/crm/crm/doctype/crm_call_log/crm_call_log.py index 748b75d9..27549c3b 100644 --- a/crm/crm/doctype/crm_call_log/crm_call_log.py +++ b/crm/crm/doctype/crm_call_log/crm_call_log.py @@ -1,9 +1,39 @@ # Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt -# import frappe +import frappe from frappe.model.document import Document class CRMCallLog(Document): pass + +@frappe.whitelist() +def get_call_log(name): + doc = frappe.get_doc("CRM Call Log", name) + _doc = doc.as_dict() + if doc.lead: + _doc.lead_name = frappe.db.get_value("CRM Lead", doc.lead, "lead_name") + if doc.note: + note = frappe.db.get_values("CRM Note", doc.note, ["title", "content"])[0] + _doc.note_doc = { + "title": note[0], + "content": note[1] + } + + return _doc + +@frappe.whitelist() +def create_lead_from_call_log(call_log): + lead = frappe.new_doc("CRM Lead") + lead.first_name = "Lead from call " + call_log.get("from") + lead.mobile_no = call_log.get("from") + lead.lead_owner = frappe.session.user + lead.save(ignore_permissions=True) + + frappe.db.set_value("CRM Call Log", call_log.get("name"), "lead", lead.name) + + if call_log.get("note"): + frappe.db.set_value("CRM Note", call_log.get("note"), "lead", lead.name) + + return lead.name \ No newline at end of file diff --git a/frontend/src/components/Activities.vue b/frontend/src/components/Activities.vue index e989a301..0e960811 100644 --- a/frontend/src/components/Activities.vue +++ b/frontend/src/components/Activities.vue @@ -99,7 +99,7 @@
Duration
-
{{ call.duration }}s
+
{{ secondsToDuration(call.duration) }}
- +
-
-
{{ details.label }}
-
-
-
{{ field.label }}
-
{{ callLog.doc[field.key] }}
+
+
Call details
+
+
+
+ +
+ {{ callLog.data.type == 'Incoming' ? 'Inbound' : 'Outbound' }} call +
+
+
+ +
+
+
+
+ +
+
+ {{ callLog.data.caller.label }} +
+
+ {{ callLog.data.from }} +
+
+ + +
+
+ {{ callLog.data.receiver.label }} +
+
+ {{ callLog.data.to }} +
+
+
+
+
+
+ +
Duration
+
{{ callLog.data.duration }}
+
+
+ + {{ timeAgo(callLog.data.modified) }} + +
- + +
+
Call recording
+
+ +
+
+ +
+
Call note
+
+
+ {{ callLog.data.note_doc.title }} +
+ +
+
+ +
+
Lead
+ + +
+ + + diff --git a/frontend/src/pages/CallLogs.vue b/frontend/src/pages/CallLogs.vue index 7b535ebe..43f5499b 100644 --- a/frontend/src/pages/CallLogs.vue +++ b/frontend/src/pages/CallLogs.vue @@ -94,7 +94,6 @@ const columns = [ key: 'duration', type: 'icon', size: 'w-20', - align: 'text-right' }, { label: 'From (number)', @@ -137,7 +136,7 @@ const rows = computed(() => { } receiver = { label: getContact(callLog.to)?.full_name || 'Unknown', - image: getContact(callLog.from)?.image, + image: getContact(callLog.to)?.image, } }