From e2eea4447b60a3358f305ea57d1de13128324f0e Mon Sep 17 00:00:00 2001 From: prssanna Date: Sat, 18 Apr 2020 21:20:45 +0530 Subject: [PATCH 1/3] fix(Reports): don't export hidden columns in reports --- frappe/desk/query_report.py | 1 + frappe/public/js/frappe/views/reports/query_report.js | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index aaf859e7fd..a08667161a 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -299,6 +299,7 @@ def export_query(): _("You can try changing the filters of your report.")) return + data.columns = [col for col in data.columns if not col.get('hidden')] columns = get_columns_dict(data.columns) from frappe.utils.xlsxutils import make_xlsx diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 08da956072..07616886f2 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -1084,7 +1084,11 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { ], ({ file_format, include_indentation }) => { this.make_access_log('Export', file_format); if (file_format === 'CSV') { - const column_row = this.columns.map(col => col.label); + const column_row = this.columns.map(col => { + if (!col.hidden) { + return col.label; + } + }); const data = this.get_data_for_csv(include_indentation); const out = [column_row].concat(data); From 8dafe6256cfdf56f595f68246417ea7fbb8abcc5 Mon Sep 17 00:00:00 2001 From: prssanna Date: Sat, 18 Apr 2020 21:32:16 +0530 Subject: [PATCH 2/3] fix: check if column is a dict --- frappe/desk/query_report.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index a08667161a..f994dc0d30 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -299,7 +299,7 @@ def export_query(): _("You can try changing the filters of your report.")) return - data.columns = [col for col in data.columns if not col.get('hidden')] + data.columns = [col for col in data.columns if isinstance(col, dict) and not col.get('hidden')] columns = get_columns_dict(data.columns) from frappe.utils.xlsxutils import make_xlsx @@ -311,7 +311,7 @@ def export_query(): frappe.response['type'] = 'binary' -def build_xlsx_data(columns, data, visible_idx,include_indentation): +def build_xlsx_data(columns, data, visible_idx, include_indentation): result = [[]] # add column headings From 191165f704d7b682001617ee994befa66306b7c5 Mon Sep 17 00:00:00 2001 From: prssanna Date: Sun, 19 Apr 2020 00:34:21 +0530 Subject: [PATCH 3/3] fix: use .reduce to filter out hidden columns --- frappe/public/js/frappe/views/reports/query_report.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 07616886f2..be24273cb5 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -1084,11 +1084,12 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { ], ({ file_format, include_indentation }) => { this.make_access_log('Export', file_format); if (file_format === 'CSV') { - const column_row = this.columns.map(col => { + const column_row = this.columns.reduce((acc, col) => { if (!col.hidden) { - return col.label; + acc.push(col.label); } - }); + return acc; + }, []); const data = this.get_data_for_csv(include_indentation); const out = [column_row].concat(data);