fix(minor)

This commit is contained in:
Rushabh Mehta 2019-10-11 15:05:39 +05:30
parent a1a1200adb
commit 3d22ecc5f3
2 changed files with 14 additions and 8 deletions

View file

@ -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 = []

View file

@ -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'