From b0a4425230abf94f932b368cb785fad6e4e5ce1d Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 12 Feb 2024 11:20:17 +0530 Subject: [PATCH] perf: process workflow email receipients from background --- .../doctype/workflow_action/workflow_action.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/frappe/workflow/doctype/workflow_action/workflow_action.py b/frappe/workflow/doctype/workflow_action/workflow_action.py index 500f8e210b..9abac0bc3b 100644 --- a/frappe/workflow/doctype/workflow_action/workflow_action.py +++ b/frappe/workflow/doctype/workflow_action/workflow_action.py @@ -109,19 +109,14 @@ def process_workflow_actions(doc, state): return roles = {t.allowed for t in next_possible_transitions} - user_data_map = get_users_next_action_data(next_possible_transitions, doc) - - if not user_data_map: - return - create_workflow_actions_for_roles(roles, doc) if send_email_alert(workflow): enqueue( send_workflow_action_email, queue="short", - users_data=list(user_data_map.values()), doc=doc, + transitions=next_possible_transitions, enqueue_after_commit=True, ) @@ -353,6 +348,8 @@ def get_users_next_action_data(transitions, doc): def create_workflow_actions_for_roles(roles, doc): + if not roles: + return workflow_action = frappe.get_doc( { "doctype": "Workflow Action", @@ -369,7 +366,8 @@ def create_workflow_actions_for_roles(roles, doc): workflow_action.insert(ignore_permissions=True) -def send_workflow_action_email(users_data, doc): +def send_workflow_action_email(doc, transitions): + users_data = get_users_next_action_data(transitions, doc) common_args = get_common_email_args(doc) message = common_args.pop("message", None) for d in users_data: