refactor: Simplify call log code
This commit is contained in:
parent
53e4fee4db
commit
e0bc437ddb
@ -24,12 +24,10 @@ class CallLog(Document):
|
|||||||
lead_number = self.get("from") if self.is_incoming_call() else self.get("to")
|
lead_number = self.get("from") if self.is_incoming_call() else self.get("to")
|
||||||
lead_number = strip_number(lead_number)
|
lead_number = strip_number(lead_number)
|
||||||
|
|
||||||
contact = get_contact_with_phone_number(strip_number(lead_number))
|
if contact := get_contact_with_phone_number(strip_number(lead_number)):
|
||||||
if contact:
|
|
||||||
self.add_link(link_type="Contact", link_name=contact)
|
self.add_link(link_type="Contact", link_name=contact)
|
||||||
|
|
||||||
lead = get_lead_with_phone_number(lead_number)
|
if lead := get_lead_with_phone_number(lead_number):
|
||||||
if lead:
|
|
||||||
self.add_link(link_type="Lead", link_name=lead)
|
self.add_link(link_type="Lead", link_name=lead)
|
||||||
|
|
||||||
# Add Employee Name
|
# Add Employee Name
|
||||||
@ -70,28 +68,30 @@ class CallLog(Document):
|
|||||||
self.append("links", {"link_doctype": link_type, "link_name": link_name})
|
self.append("links", {"link_doctype": link_type, "link_name": link_name})
|
||||||
|
|
||||||
def trigger_call_popup(self):
|
def trigger_call_popup(self):
|
||||||
if self.is_incoming_call():
|
if not self.is_incoming_call():
|
||||||
scheduled_employees = get_scheduled_employees_for_popup(self.medium)
|
return
|
||||||
employees = get_employees_with_number(self.to)
|
|
||||||
employee_emails = [employee.get("user_id") for employee in employees]
|
|
||||||
|
|
||||||
# check if employees with matched number are scheduled to receive popup
|
scheduled_employees = get_scheduled_employees_for_popup(self.medium)
|
||||||
emails = set(scheduled_employees).intersection(employee_emails)
|
employees = get_employees_with_number(self.to)
|
||||||
|
employee_emails = [employee.get("user_id") for employee in employees]
|
||||||
|
|
||||||
if frappe.conf.developer_mode:
|
# check if employees with matched number are scheduled to receive popup
|
||||||
self.add_comment(
|
emails = set(scheduled_employees).intersection(employee_emails)
|
||||||
text=f"""
|
|
||||||
|
if frappe.conf.developer_mode:
|
||||||
|
self.add_comment(
|
||||||
|
text=f"""
|
||||||
Scheduled Employees: {scheduled_employees}
|
Scheduled Employees: {scheduled_employees}
|
||||||
Matching Employee: {employee_emails}
|
Matching Employee: {employee_emails}
|
||||||
Show Popup To: {emails}
|
Show Popup To: {emails}
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
if employee_emails and not emails:
|
if employee_emails and not emails:
|
||||||
self.add_comment(text=_("No employee was scheduled for call popup"))
|
self.add_comment(text=_("No employee was scheduled for call popup"))
|
||||||
|
|
||||||
for email in emails:
|
for email in emails:
|
||||||
frappe.publish_realtime("show_call_popup", self, user=email)
|
frappe.publish_realtime("show_call_popup", self, user=email)
|
||||||
|
|
||||||
def update_received_by(self):
|
def update_received_by(self):
|
||||||
if employees := get_employees_with_number(self.get("to")):
|
if employees := get_employees_with_number(self.get("to")):
|
||||||
@ -154,8 +154,8 @@ def link_existing_conversations(doc, state):
|
|||||||
ELSE 0
|
ELSE 0
|
||||||
END
|
END
|
||||||
)=0
|
)=0
|
||||||
""",
|
""",
|
||||||
dict(phone_number="%{}".format(number), docname=doc.name, doctype=doc.doctype),
|
dict(phone_number=f"%{number}", docname=doc.name, doctype=doc.doctype),
|
||||||
)
|
)
|
||||||
|
|
||||||
for log in logs:
|
for log in logs:
|
||||||
@ -175,7 +175,7 @@ def get_linked_call_logs(doctype, docname):
|
|||||||
filters={"parenttype": "Call Log", "link_doctype": doctype, "link_name": docname},
|
filters={"parenttype": "Call Log", "link_doctype": doctype, "link_name": docname},
|
||||||
)
|
)
|
||||||
|
|
||||||
logs = set([log.parent for log in logs])
|
logs = {log.parent for log in logs}
|
||||||
|
|
||||||
logs = frappe.get_all("Call Log", fields=["*"], filters={"name": ["in", logs]})
|
logs = frappe.get_all("Call Log", fields=["*"], filters={"name": ["in", logs]})
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user