Merge pull request #28268 from frappe/workflow_email_fix

fix: use get_email_template to support html template in workflow email
This commit is contained in:
Sumit Bhanushali 2024-10-24 15:00:12 +05:30 committed by GitHub
commit bc37b4c4c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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):