From a86884e40e02d2085fd52480ec42ce98d949403c Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 21 May 2025 16:27:52 +0530 Subject: [PATCH] fix: activate/deactivate agent (cherry picked from commit 0a836c78bb45a5e0eaa27142ea07fc7b063b5b09) --- crm/fcrm/doctype/crm_agent/crm_agent.py | 19 +++++ frontend/src/components/Settings/Agents.vue | 92 +++++++++++++++++---- 2 files changed, 95 insertions(+), 16 deletions(-) diff --git a/crm/fcrm/doctype/crm_agent/crm_agent.py b/crm/fcrm/doctype/crm_agent/crm_agent.py index 0d65bd32..5cde4225 100644 --- a/crm/fcrm/doctype/crm_agent/crm_agent.py +++ b/crm/fcrm/doctype/crm_agent/crm_agent.py @@ -13,8 +13,15 @@ class CRMAgent(Document): def update_agent_role(user, new_role): """ Update the role of the user to Agent + :param user: The name of the user + :param new_role: The new role to assign (Sales Manager or Sales User) """ + frappe.only_for("Sales Manager") + + if new_role not in ["Sales Manager", "Sales User"]: + frappe.throw("Cannot assign this role") + user_doc = frappe.get_doc("User", user) if new_role == "Sales Manager": @@ -25,3 +32,15 @@ def update_agent_role(user, new_role): user_doc.remove_roles("Sales Manager", "System Manager") user_doc.save() + + +@frappe.whitelist() +def update_agent_status(agent, status): + """ + Activate or deactivate the agent + :param agent: The name of the agent + :param status: The status to set (1 for active, 0 for inactive) + """ + frappe.only_for("Sales Manager") + + frappe.db.set_value("CRM Agent", agent, "is_active", status) diff --git a/frontend/src/components/Settings/Agents.vue b/frontend/src/components/Settings/Agents.vue index f4144a1c..e477c610 100644 --- a/frontend/src/components/Settings/Agents.vue +++ b/frontend/src/components/Settings/Agents.vue @@ -5,7 +5,7 @@

{{ __('Agents') }}

-
+
-
-
+
+
{{ agent.agent_name }} +
-
+
{{ agent.name }}
- +
+ + +
@@ -86,7 +103,14 @@