From 834c31aa522bf3dc501d57368de9be539ff68266 Mon Sep 17 00:00:00 2001
From: barredterra <14891507+barredterra@users.noreply.github.com>
Date: Wed, 13 Nov 2024 11:22:59 +0100
Subject: [PATCH 1/2] fix: get PDF from printview
Clicking "Get PDF" in printview should result in the same view being converted to PDF. So far, we didn't pass the print format and letterhead, sometimes resulting in an entirely different PDF.
---
frappe/www/printview.html | 2 +-
frappe/www/printview.py | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/frappe/www/printview.html b/frappe/www/printview.html
index 9841bd045a..c3c557c8e4 100644
--- a/frappe/www/printview.html
+++ b/frappe/www/printview.html
@@ -18,7 +18,7 @@
{{ _("Print") }}
+ href="/api/method/frappe.utils.print_format.download_pdf?doctype={{doctype|e}}&name={{name|e}}&format={{print_format|e}}&letterhead={{letterhead|e}}&no_letterhead={{no_letterhead|e}}&_lang={{lang|e}}&key={{key|e}}">
{{ _('Get PDF') }}
diff --git a/frappe/www/printview.py b/frappe/www/printview.py
index 291812777f..266b567b13 100644
--- a/frappe/www/printview.py
+++ b/frappe/www/printview.py
@@ -97,6 +97,9 @@ def get_context(context) -> PrintContext:
"doctype": frappe.form_dict.doctype,
"name": frappe.form_dict.name,
"key": frappe.form_dict.get("key"),
+ "print_format": print_format.name,
+ "letterhead": letterhead,
+ "no_letterhead": frappe.form_dict.no_letterhead,
}
From 3f635832157e08e91f9b5fb80b4509e05a7e3858 Mon Sep 17 00:00:00 2001
From: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
Date: Wed, 13 Nov 2024 12:14:25 +0100
Subject: [PATCH 2/2] fix: print_format can be None
Co-authored-by: Akhil Narang
---
frappe/www/printview.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frappe/www/printview.py b/frappe/www/printview.py
index 266b567b13..0caef28dce 100644
--- a/frappe/www/printview.py
+++ b/frappe/www/printview.py
@@ -97,7 +97,7 @@ def get_context(context) -> PrintContext:
"doctype": frappe.form_dict.doctype,
"name": frappe.form_dict.name,
"key": frappe.form_dict.get("key"),
- "print_format": print_format.name,
+ "print_format": getattr(print_format, "name", None),
"letterhead": letterhead,
"no_letterhead": frappe.form_dict.no_letterhead,
}