From 668831178bcec4594d5a2213c208e489c5ecefc6 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 1 Apr 2016 17:44:21 +0530 Subject: [PATCH] [fix] Route for report builder report from awesome bar --- frappe/public/js/frappe/ui/toolbar/awesome_bar.js | 10 ++++++++-- frappe/utils/user.py | 11 +++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/frappe/public/js/frappe/ui/toolbar/awesome_bar.js b/frappe/public/js/frappe/ui/toolbar/awesome_bar.js index 2be5aac6ab..1d0e7ae130 100644 --- a/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +++ b/frappe/public/js/frappe/ui/toolbar/awesome_bar.js @@ -221,11 +221,17 @@ frappe.search.verbs = [ // reports function(txt) { frappe.search.find(keys(frappe.boot.user.all_reports), txt, function(match) { - var report_type = frappe.boot.user.all_reports[match]; + var report = frappe.boot.user.all_reports[match]; + var route = []; + if(report.report_type == "Report Builder") + route = ["Report", report.ref_doctype, match]; + else + route = ["query-report", match]; + return { label: __("Report {0}", [""+__(match)+""]), value: __("Report {0}", [__(match)]), - route: [report_type=="Report Builder" ? "Report" : "query-report", match] + route: route } }); }, diff --git a/frappe/utils/user.py b/frappe/utils/user.py index 15ef920312..f9169968eb 100644 --- a/frappe/utils/user.py +++ b/frappe/utils/user.py @@ -145,9 +145,6 @@ class UserPermissions: self.can_import = frappe.db.sql_list("""select name from `tabDocType` where allow_import = 1""") - self.all_reports = frappe.db.sql("""select name, report_type from tabReport - where ref_doctype in ('{0}')""".format("', '".join(self.can_get_report))) - def get_defaults(self): import frappe.defaults self.defaults = frappe.defaults.get_defaults(self.name) @@ -204,8 +201,14 @@ class UserPermissions: d[key] = list(set(getattr(self, key))) - d.all_reports = dict(self.all_reports) + d.all_reports = self.get_all_reports() return d + + def get_all_reports(self): + reports = frappe.db.sql("""select name, report_type, ref_doctype from tabReport + where ref_doctype in ('{0}')""".format("', '".join(self.can_get_report)), as_dict=1) + + return frappe._dict((d.name, d) for d in reports) def get_user_fullname(user): fullname = frappe.db.sql("SELECT CONCAT_WS(' ', first_name, last_name) FROM `tabUser` WHERE name=%s", (user,))