fix: pass necessary params instead of args
diff --git a/erpnext/crm/doctype/appointment/appointment.py b/erpnext/crm/doctype/appointment/appointment.py
index 8480f2c..a4e00d6 100644
--- a/erpnext/crm/doctype/appointment/appointment.py
+++ b/erpnext/crm/doctype/appointment/appointment.py
@@ -136,9 +136,7 @@
if existing_assignee:
# If the latest opportunity is assigned to someone
# Assign the appointment to the same
- add_agent_assignment(
- {"doctype": self.doctype, "name": self.name, "assign_to": [existing_assignee]}
- )
+ assign_agents(self.doctype, self.name, [existing_assignee])
return
if self._assign:
return
@@ -146,7 +144,7 @@
for agent in available_agents:
if _check_agent_availability(agent, self.scheduled_time):
agent = agent[0]
- add_agent_assignment({"doctype": self.doctype, "name": self.name, "assign_to": [agent]})
+ assign_agents(self.doctype, self.name, [agent])
break
def get_assignee_from_latest_opportunity(self):
@@ -244,12 +242,9 @@
return None
-def add_agent_assignment(args):
- doctype = args.get("doctype")
- docname = args.get("name")
+def assign_agents(doctype: str, name: str, agents: list[str]) -> None:
+ for agent in agents:
+ if not frappe.has_permission(doctype=doctype, doc=name, user=agent):
+ add_docshare(doctype, name, agent, flags={"ignore_share_permission": True})
- for assign_to in args.get("assign_to"):
- if not frappe.has_permission(doctype=doctype, doc=docname, user=assign_to):
- add_docshare(doctype, docname, assign_to, flags={"ignore_share_permission": True})
-
- add_assignment(args)
+ add_assignment({"doctype": doctype, "name": name, "assign_to": agents})