From 3d22ecc5f37396cecdf79072a4279c2f734aa388 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 11 Oct 2019 15:05:39 +0530 Subject: [PATCH] fix(minor) --- frappe/core/doctype/report/report.py | 8 ++++---- frappe/utils/safe_exec.py | 14 ++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/frappe/core/doctype/report/report.py b/frappe/core/doctype/report/report.py index 511ae5b814..1c62ff131b 100644 --- a/frappe/core/doctype/report/report.py +++ b/frappe/core/doctype/report/report.py @@ -101,9 +101,9 @@ class Report(Document): # The JOB if self.is_standard == 'Yes': - self.execute_module(filters) + res = self.execute_module(filters) else: - self.execute_script(filters) + res = self.execute_script(filters) # automatically set as prepared execution_time = (datetime.datetime.now() - start_time).total_seconds() @@ -118,13 +118,13 @@ class Report(Document): # report in python module module = self.module or frappe.db.get_value("DocType", self.ref_doctype, "module") method_name = get_report_module_dotted_path(module, self.name) + ".execute" - res = frappe.get_attr(method_name)(frappe._dict(filters)) + return frappe.get_attr(method_name)(frappe._dict(filters)) def execute_script(self, filters): # server script loc = {"filters": frappe._dict(filters), 'data':[]} safe_exec(self.report_script, None, loc) - res = loc['data'] + return loc['data'] def get_data(self, filters=None, limit=None, user=None, as_dict=False): columns = [] diff --git a/frappe/utils/safe_exec.py b/frappe/utils/safe_exec.py index 8c4676554a..a2d987e61d 100644 --- a/frappe/utils/safe_exec.py +++ b/frappe/utils/safe_exec.py @@ -19,7 +19,8 @@ def safe_exec(script, _globals=None, _locals=None): # build globals exec_globals = get_safe_globals() - exec_globals.update(_globals) + if _globals: + exec_globals.update(_globals) # execute script compiled by RestrictedPython exec(compile_restricted(script), exec_globals, _locals) # pylint: disable=exec-used @@ -46,31 +47,36 @@ def get_safe_globals(): _ = frappe._, _dict = frappe._dict, flags = frappe.flags, - get_url = frappe.utils.get_url, + format = frappe.format_value, format_value = frappe.format_value, date_format = date_format, format_date = frappe.utils.data.global_date_format, form_dict = getattr(frappe.local, 'form_dict', {}), - get_hooks = frappe.get_hooks, + get_meta = frappe.get_meta, get_doc = frappe.get_doc, get_cached_doc = frappe.get_cached_doc, get_list = frappe.get_list, get_all = frappe.get_all, get_system_settings = frappe.get_system_settings, + utils = datautils, + get_url = frappe.utils.get_url, + render_template = frappe.render_template, + msgprint = frappe.msgprint, + user = user, get_fullname = frappe.utils.get_fullname, get_gravatar = frappe.utils.get_gravatar_url, full_name = frappe.local.session.data.full_name if getattr(frappe.local, "session", None) else "Guest", - render_template = frappe.render_template, request = getattr(frappe.local, 'request', {}), session = frappe._dict( user = user, csrf_token = frappe.local.session.data.csrf_token if getattr(frappe.local, "session", None) else '' ), socketio_port = frappe.conf.socketio_port, + get_hooks = frappe.get_hooks, ), style = frappe._dict( border_color = '#d1d8dd'