From f1595c06b490d51be6c427e3798bf283724607a7 Mon Sep 17 00:00:00 2001 From: pratu16x7 Date: Thu, 13 Apr 2017 12:43:33 +0530 Subject: [PATCH] [fix] set report-type for custom role reports --- frappe/boot.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/frappe/boot.py b/frappe/boot.py index d2dab9963d..69eebd4032 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -95,20 +95,25 @@ def get_allowed_pages(): def get_allowed_reports(): return get_user_page_or_report('Report') - + def get_user_page_or_report(parent): roles = frappe.get_roles() has_role = {} column = get_column(parent) - + report_type_col = "" + if parent == "Report": + report_type_col = ", `tabCustom Role`.report_type" + # get pages or reports set on custom role - for p in frappe.db.sql("""select `tabCustom Role`.{field} as name, `tabCustom Role`.modified, `tabCustom Role`.ref_doctype + for p in frappe.db.sql("""select `tabCustom Role`.{field} as name, `tabCustom Role`.modified, `tabCustom Role`.ref_doctype {report_type_col} from `tabCustom Role`, `tabHas Role` where `tabHas Role`.parent = `tabCustom Role`.name and `tabCustom Role`.{field} is not null and `tabHas Role`.role in ({roles}) """.format(field=parent.lower(), roles = ', '.join(['%s']*len(roles))), roles, as_dict=1): has_role[p.name] = {"modified":p.modified, "title": p.name, "ref_doctype": p.ref_doctype} + if parent == "Report": + has_role[p.name].update({'report_type': p.report_type}) for p in frappe.db.sql("""select distinct tab{parent}.name, tab{parent}.modified, {column} @@ -128,7 +133,7 @@ def get_user_page_or_report(parent): from `tab{parent}` where (select count(*) from `tabHas Role` where `tabHas Role`.parent=tab{parent}.name) = 0""".format(parent=parent, column=column), as_dict=1): - if p.name not in has_role: + if p.name not in has_role: has_role[p.name] = {"modified":p.modified, "title": p.title} if parent == "Report": has_role[p.name].update({'ref_doctype': p.ref_doctype})