From e78f73679b51dda4e5da98bcb3493b7ca26309eb Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 3 Feb 2020 18:04:45 +0530 Subject: [PATCH] fix (Report View): don't render/add status if value not found --- .../js/frappe/views/reports/report_view.js | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/report_view.js b/frappe/public/js/frappe/views/reports/report_view.js index cf3e387346..63d9522e68 100644 --- a/frappe/public/js/frappe/views/reports/report_view.js +++ b/frappe/public/js/frappe/views/reports/report_view.js @@ -791,7 +791,13 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView { let std_fields = frappe.model.std_fields.filter( df => df.fieldname !== 'docstatus'); // add status field derived from docstatus, if status is not a standard field - if (!frappe.meta.has_field(this.doctype, 'status')) { + let has_status_values = false; + + if (this.data) { + has_status_values = frappe.get_indicator(this.data[0], this.doctype); + } + + if (!frappe.meta.has_field(this.doctype, 'status') && has_status_values) { doctype_fields = [{ label: __('Status'), fieldname: 'docstatus', @@ -1038,18 +1044,23 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView { if (col.field === 'docstatus' && !frappe.meta.has_field(this.doctype, 'status')) { // get status from docstatus let status = frappe.get_indicator(d, this.doctype); - if (!status[0]) { - // get_indicator returns the dependent field's condition as the 3rd parameter - let dependent_col = status[2].split(',')[0]; - // add status dependency column - this.add_status_dependency_column(dependent_col, this.doctype); + if (status) { + if (!status[0]) { + // get_indicator returns the dependent field's condition as the 3rd parameter + let dependent_col = status[2].split(',')[0]; + // add status dependency column + this.add_status_dependency_column(dependent_col, this.doctype); + } + return { + name: d.name, + doctype: col.docfield.parent, + content: status[0], + editable: false + }; + } else { + // no status values found + this.remove_column_from_datatable(col) } - return { - name: d.name, - doctype: col.docfield.parent, - content: status[0], - editable: false - }; } else if (col.field in d) { const value = d[col.field]; return {