refactor: Simplify call log code

This commit is contained in:
Suraj Shetty 2022-05-08 16:05:04 +05:30
parent 53e4fee4db
commit e0bc437ddb

View File

@ -24,12 +24,10 @@ class CallLog(Document):
lead_number = self.get("from") if self.is_incoming_call() else self.get("to")
lead_number = strip_number(lead_number)
contact = get_contact_with_phone_number(strip_number(lead_number))
if contact:
if contact := get_contact_with_phone_number(strip_number(lead_number)):
self.add_link(link_type="Contact", link_name=contact)
lead = get_lead_with_phone_number(lead_number)
if lead:
if lead := get_lead_with_phone_number(lead_number):
self.add_link(link_type="Lead", link_name=lead)
# Add Employee Name
@ -70,28 +68,30 @@ class CallLog(Document):
self.append("links", {"link_doctype": link_type, "link_name": link_name})
def trigger_call_popup(self):
if self.is_incoming_call():
scheduled_employees = get_scheduled_employees_for_popup(self.medium)
employees = get_employees_with_number(self.to)
employee_emails = [employee.get("user_id") for employee in employees]
if not self.is_incoming_call():
return
# check if employees with matched number are scheduled to receive popup
emails = set(scheduled_employees).intersection(employee_emails)
scheduled_employees = get_scheduled_employees_for_popup(self.medium)
employees = get_employees_with_number(self.to)
employee_emails = [employee.get("user_id") for employee in employees]
if frappe.conf.developer_mode:
self.add_comment(
text=f"""
# check if employees with matched number are scheduled to receive popup
emails = set(scheduled_employees).intersection(employee_emails)
if frappe.conf.developer_mode:
self.add_comment(
text=f"""
Scheduled Employees: {scheduled_employees}
Matching Employee: {employee_emails}
Show Popup To: {emails}
"""
)
)
if employee_emails and not emails:
self.add_comment(text=_("No employee was scheduled for call popup"))
if employee_emails and not emails:
self.add_comment(text=_("No employee was scheduled for call popup"))
for email in emails:
frappe.publish_realtime("show_call_popup", self, user=email)
for email in emails:
frappe.publish_realtime("show_call_popup", self, user=email)
def update_received_by(self):
if employees := get_employees_with_number(self.get("to")):
@ -154,8 +154,8 @@ def link_existing_conversations(doc, state):
ELSE 0
END
)=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:
@ -175,7 +175,7 @@ def get_linked_call_logs(doctype, 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]})