From fc213ed7617cae135bc10dba2b7c5c36cbfb7ec0 Mon Sep 17 00:00:00 2001 From: Maharshi Patel Date: Fri, 14 Feb 2025 11:04:24 +0530 Subject: [PATCH] fix: check for chrome_pdf_generator in form_dict first. first check if chrome_pdf_generator is available in form_dict. if not available which can happen if function is called from other places then set value from args or print_format. --- frappe/__init__.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 44f48280e2..e887763463 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -2095,10 +2095,18 @@ def get_print( from frappe.utils.pdf import get_pdf from frappe.website.serve import get_response_without_exception_handling - # if arg is passed, use that, else get setting from print format - if chrome_pdf_generator is None: - chrome_pdf_generator = frappe.get_cached_value("Print Format", print_format, "chrome_pdf_generator") - local.form_dict.chrome_pdf_generator = chrome_pdf_generator = bool(cint(chrome_pdf_generator)) + """ + local.form_dict.chrome_pdf_generator is set from before_request hook (print designer app) for download_pdf endpoint + if it is not set (internal function call) then set it + """ + if "chrome_pdf_generator" not in local.form_dict: + # if arg is passed, use that, else get setting from print format + if chrome_pdf_generator is None: + chrome_pdf_generator = frappe.get_cached_value( + "Print Format", print_format, "chrome_pdf_generator" + ) + local.form_dict.chrome_pdf_generator = bool(cint(chrome_pdf_generator)) + original_form_dict = copy.deepcopy(local.form_dict) try: local.form_dict.doctype = doctype @@ -2121,7 +2129,7 @@ def get_print( if not as_pdf: return html - if chrome_pdf_generator: + if local.form_dict.chrome_pdf_generator: hook_func = frappe.get_hooks("chrome_pdf_generator") if hook_func: return frappe.call(