From ce2d91c751e7cdfe61a50728229325617b264a59 Mon Sep 17 00:00:00 2001 From: Maharshi Patel <39730881+maharshivpatel@users.noreply.github.com> Date: Mon, 26 Feb 2024 20:20:25 +0530 Subject: [PATCH] feat: hook for print format template loader (#25037) * feat: hook for print format template loader currently logic for how print format template should be loaded is hardcoded added hook to allow for custom logic to be implemented by other apps. if hook returns falsy value, then default logic will be used. * chore: use Walrus Operator and handle Empty Hooks --- frappe/www/printview.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frappe/www/printview.py b/frappe/www/printview.py index ee0f0869a8..b50624146c 100644 --- a/frappe/www/printview.py +++ b/frappe/www/printview.py @@ -162,7 +162,13 @@ def get_rendered_template( def get_template_from_string(): return jenv.from_string(get_print_format(doc.doctype, print_format)) - if print_format.custom_format: + template = None + if hook_func := frappe.get_hooks("get_print_format_template"): + template = frappe.get_attr(hook_func[-1])(jenv=jenv, print_format=print_format) + + if template: + pass + elif print_format.custom_format: template = get_template_from_string() elif print_format.format_data: