diff --git a/frappe/model/document.py b/frappe/model/document.py index 069e184cf6..6c1b01b56b 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -118,6 +118,9 @@ class Document(BaseDocument): raise frappe.PermissionError("No permission to {} {} {}".format(perm_type, self.doctype, self.name or "")) def insert(self, ignore_permissions=None): + if getattr(self, "in_print", False): + return + if ignore_permissions!=None: self.ignore_permissions = ignore_permissions @@ -156,6 +159,9 @@ class Document(BaseDocument): return self def save(self, ignore_permissions=None): + if getattr(self, "in_print", False): + return + if ignore_permissions!=None: self.ignore_permissions = ignore_permissions diff --git a/frappe/public/js/frappe/misc/utils.js b/frappe/public/js/frappe/misc/utils.js index 607927848c..73648f2f64 100644 --- a/frappe/public/js/frappe/misc/utils.js +++ b/frappe/public/js/frappe/misc/utils.js @@ -170,8 +170,8 @@ frappe.utils = { }, sort: function(list, key, compare_type, reverse) { - if(list.length < 2) - return list; + if(!list || list.length < 2) + return list || []; var sort_fn = { "string": function(a, b) { diff --git a/frappe/templates/pages/print.py b/frappe/templates/pages/print.py index 233ad17d11..0c76ec9c4e 100644 --- a/frappe/templates/pages/print.py +++ b/frappe/templates/pages/print.py @@ -29,7 +29,6 @@ def get_context(context): } doc = frappe.get_doc(frappe.form_dict.doctype, frappe.form_dict.name) - meta = frappe.get_meta(doc.doctype) return { @@ -55,6 +54,8 @@ def get_html(doc, name=None, print_format=None, meta=None, if isinstance(doc, basestring): doc = frappe.get_doc(json.loads(doc)) + doc.in_print = True + validate_print_permission(doc) if hasattr(doc, "before_print"):