From 4d8b65b22faeca132372c6e211676a1a7be3ce60 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 31 Jul 2014 17:32:54 +0530 Subject: [PATCH] [print] Print Settings -> With Letterhead, defaults the Letterhead checkbox in Print Preview --- frappe/boot.py | 13 +++++++++---- .../core/doctype/print_settings/print_settings.json | 11 ++++++++++- frappe/patches.txt | 1 + frappe/patches/v4_2/print_with_letterhead.py | 11 +++++++++++ frappe/public/js/frappe/form/print.js | 10 +++++++--- frappe/templates/pages/print.py | 4 +++- 6 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 frappe/patches/v4_2/print_with_letterhead.py diff --git a/frappe/boot.py b/frappe/boot.py index 23c52dbc0f..6623abcc4d 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -51,7 +51,7 @@ def get_bootinfo(): load_translations(bootinfo) add_timezone_info(bootinfo) load_conf_settings(bootinfo) - load_print_css(bootinfo) + load_print(bootinfo, doclist) # ipinfo if frappe.session['data'].get('ipinfo'): @@ -150,6 +150,11 @@ def add_timezone_info(bootinfo): frappe.utils.momentjs.update(user, bootinfo.timezone_info) frappe.utils.momentjs.update(system, bootinfo.timezone_info) -def load_print_css(bootinfo): - bootinfo.print_css = frappe.get_attr("frappe.templates.pages.print.get_print_style")(frappe.db.get_single_value("Print Settings", - "print_style") or "Modern") +def load_print(bootinfo, doclist): + print_settings = frappe.db.get_singles_dict("Print Settings") + print_settings.doctype = ":Print Settings" + doclist.append(print_settings) + load_print_css(bootinfo, print_settings) + +def load_print_css(bootinfo, print_settings): + bootinfo.print_css = frappe.get_attr("frappe.templates.pages.print.get_print_style")(print_settings.print_style or "Modern") diff --git a/frappe/core/doctype/print_settings/print_settings.json b/frappe/core/doctype/print_settings/print_settings.json index edfb5f6276..4299d79e17 100644 --- a/frappe/core/doctype/print_settings/print_settings.json +++ b/frappe/core/doctype/print_settings/print_settings.json @@ -53,6 +53,15 @@ "label": "Font Size", "permlevel": 0 }, + { + "default": "1", + "description": "Print with Letterhead, unless unchecked in a particular Document", + "fieldname": "with_letterhead", + "fieldtype": "Check", + "label": "With Letterhead", + "permlevel": 0, + "reqd": 0 + }, { "fieldname": "section_break_8", "fieldtype": "Section Break", @@ -67,7 +76,7 @@ ], "icon": "icon-cog", "issingle": 1, - "modified": "2014-07-31 06:25:45.297096", + "modified": "2014-07-31 07:43:54.550258", "modified_by": "Administrator", "module": "Core", "name": "Print Settings", diff --git a/frappe/patches.txt b/frappe/patches.txt index a23f61b899..dd4be43bdf 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -49,3 +49,4 @@ frappe.patches.v4_1.enable_print_as_pdf #2014-06-17 execute:frappe.db.sql("""update `tabDocPerm` set email=1 where parent='User' and permlevel=0 and `role`='All' and `read`=1 and apply_user_permissions=1""") #2014-07-15 execute:frappe.db.sql("""update `tabPrint Format` set print_format_type='Client' where ifnull(print_format_type, '')=''""") #2014-07-28 frappe.patches.v4_1.file_manager_fix +frappe.patches.v4_2.print_with_letterhead diff --git a/frappe/patches/v4_2/print_with_letterhead.py b/frappe/patches/v4_2/print_with_letterhead.py new file mode 100644 index 0000000000..ad2a144d95 --- /dev/null +++ b/frappe/patches/v4_2/print_with_letterhead.py @@ -0,0 +1,11 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals +import frappe + +def execute(): + frappe.reload_doc("core", "doctype", "print_settings") + print_settings = frappe.get_doc("Print Settings") + print_settings.with_letterhead = 1 + print_settings.save() diff --git a/frappe/public/js/frappe/form/print.js b/frappe/public/js/frappe/form/print.js index 5488415847..e949d42fb5 100644 --- a/frappe/public/js/frappe/form/print.js +++ b/frappe/public/js/frappe/form/print.js @@ -14,7 +14,7 @@ frappe.ui.form.PrintPreview = Class.extend({
\
\
\ -
\ +
\
\ Preview\ Download PDF\ @@ -38,7 +38,10 @@ frappe.ui.form.PrintPreview = Class.extend({ this.print_formats = frappe.meta.get_print_formats(this.frm.meta.name); this.print_letterhead = this.wrapper .find(".print-letterhead") - .on("change", function() { me.print_sel.trigger("change"); }); + .on("change", function() { me.print_sel.trigger("change"); }) + .prop("checked", cint( + (frappe.model.get_doc(":Print Settings", "Print Settings") + || {with_letterhead: 1}).with_letterhead) ? true : false); this.print_sel = this.wrapper .find(".print-preview-select") .on("change", function() { @@ -72,7 +75,8 @@ frappe.ui.form.PrintPreview = Class.extend({ var w = window.open("/api/method/frappe.templates.pages.print.download_pdf?" +"doctype="+encodeURIComponent(me.frm.doc.doctype) +"&name="+encodeURIComponent(me.frm.doc.name) - +"&format="+me.selected_format()); + +"&format="+me.selected_format() + +"&no_letterhead="+(me.with_letterhead() ? "0" : "1")); if(!w) { msgprint(__("Please enable pop-ups")); return; } diff --git a/frappe/templates/pages/print.py b/frappe/templates/pages/print.py index 1eff280f63..51e780cbac 100644 --- a/frappe/templates/pages/print.py +++ b/frappe/templates/pages/print.py @@ -42,10 +42,12 @@ def get_context(context): @frappe.whitelist() def get_html(doc, name=None, print_format=None, meta=None, - no_letterhead=False, trigger_print=False): + no_letterhead=None, trigger_print=False): if isinstance(no_letterhead, basestring): no_letterhead = cint(no_letterhead) + elif no_letterhead is None: + no_letterhead = not cint(frappe.db.get_single_value("Print Settings", "with_letterhead")) if isinstance(doc, basestring) and isinstance(name, basestring): doc = frappe.get_doc(doc, name)