diff --git a/frappe/workflow/doctype/workflow_action/workflow_action.py b/frappe/workflow/doctype/workflow_action/workflow_action.py index ee5ef58661..ea751f048e 100644 --- a/frappe/workflow/doctype/workflow_action/workflow_action.py +++ b/frappe/workflow/doctype/workflow_action/workflow_action.py @@ -5,6 +5,7 @@ import frappe from frappe import _ from frappe.desk.form.utils import get_pdf_link from frappe.desk.notifications import clear_doctype_notifications +from frappe.email.doctype.email_template.email_template import get_email_template from frappe.model.document import Document from frappe.model.workflow import ( apply_workflow, @@ -430,10 +431,10 @@ def get_common_email_args(doc): doctype = doc.get("doctype") docname = doc.get("name") - email_template = get_email_template(doc) + email_template = get_email_template_from_workflow(doc) if email_template: - subject = frappe.render_template(email_template.subject, vars(doc)) - response = frappe.render_template(email_template.response, vars(doc)) + subject = email_template.get("subject") + response = email_template.get("message") else: subject = _("Workflow Action") + f" on {doctype}: {docname}" response = get_link_to_form(doctype, docname, f"{doctype}: {docname}") @@ -463,7 +464,7 @@ def get_common_email_args(doc): } -def get_email_template(doc): +def get_email_template_from_workflow(doc): """Return next_action_email_template for workflow state (if available) based on doc current workflow state.""" workflow_name = get_workflow_name(doc.get("doctype")) doc_state = get_doc_workflow_state(doc) @@ -475,7 +476,7 @@ def get_email_template(doc): if not template_name: return - return frappe.get_doc("Email Template", template_name) + return get_email_template(template_name, doc) def get_state_optional_field_value(workflow_name, state):