diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index e2a2186026..b4913d72ae 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -37,6 +37,25 @@ def get_form_params(): else: data["save_user_settings"] = True + fields = data["fields"] + + for field in fields: + key = field.split(" as ")[0] + + if "." in key: + parenttype, fieldname = key.split(".")[0][4:-1], key.split(".")[1].strip("`") + else: + parenttype = doctype + fieldname = fieldname.strip("`") + + df = frappe.get_meta(parenttype).get_field(fieldname) + + report_hide = df.report_hide if df else None + + # remove the field from the query if the report hide flag is set + if report_hide: + fields.remove(field) + # queries must always be server side data.query = None diff --git a/frappe/public/js/frappe/ui/filters/filters.js b/frappe/public/js/frappe/ui/filters/filters.js index 7b152aa4d1..0512ffb94b 100644 --- a/frappe/public/js/frappe/ui/filters/filters.js +++ b/frappe/public/js/frappe/ui/filters/filters.js @@ -843,7 +843,8 @@ frappe.ui.FieldSelect = Class.extend({ // main table var main_table_fields = std_filters.concat(frappe.meta.docfield_list[me.doctype]); $.each(frappe.utils.sort(main_table_fields, "label", "string"), function(i, df) { - if(frappe.perm.has_perm(me.doctype, df.permlevel, "read")) + // show fields where user has read access and if report hide flag is not set + if(frappe.perm.has_perm(me.doctype, df.permlevel, "read") && !df.report_hide) me.add_field_option(df); }); @@ -852,7 +853,8 @@ frappe.ui.FieldSelect = Class.extend({ if(table_df.options) { var child_table_fields = [].concat(frappe.meta.docfield_list[table_df.options]); $.each(frappe.utils.sort(child_table_fields, "label", "string"), function(i, df) { - if(frappe.perm.has_perm(me.doctype, df.permlevel, "read")) + // show fields where user has read access and if report hide flag is not set + if(frappe.perm.has_perm(me.doctype, df.permlevel, "read") && !df.report_hide) me.add_field_option(df); }); } diff --git a/frappe/public/js/frappe/views/reports/reportview.js b/frappe/public/js/frappe/views/reports/reportview.js index b1c8c32ead..8cf6912fc8 100644 --- a/frappe/public/js/frappe/views/reports/reportview.js +++ b/frappe/public/js/frappe/views/reports/reportview.js @@ -151,7 +151,8 @@ frappe.views.ReportView = frappe.ui.BaseList.extend({ var columns = [['name', this.doctype],]; $.each(frappe.meta.docfield_list[this.doctype], function(i, df) { if((df.in_standard_filter || df.in_list_view) && df.fieldname!='naming_series' - && !in_list(frappe.model.no_value_type, df.fieldtype)) { + && !in_list(frappe.model.no_value_type, df.fieldtype) + && !df.report_hide) { columns.push([df.fieldname, df.parent]); } });