From b504a8fc967a47ae284698e34ac39e18cc315796 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 18 Aug 2014 17:09:34 +0530 Subject: [PATCH 1/2] [fix] frappe.utils.sort --- frappe/public/js/frappe/misc/utils.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) { From 69564b57c05ff50ba6f4d2e4d23369e5b08f8301 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 18 Aug 2014 19:01:29 +0530 Subject: [PATCH 2/2] [print] [precaution] don't save or insert in print --- frappe/model/document.py | 6 ++++++ frappe/templates/pages/print.py | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) 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/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"):