refactor: Simplify call log code
diff --git a/erpnext/telephony/doctype/call_log/call_log.py b/erpnext/telephony/doctype/call_log/call_log.py
index 7725e71..1d6839c 100644
--- a/erpnext/telephony/doctype/call_log/call_log.py
+++ b/erpnext/telephony/doctype/call_log/call_log.py
@@ -24,12 +24,10 @@
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 @@
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 @@
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 @@
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]})