From eb4e2bce397b6fe625a8a1c5ca2af7d25585f285 Mon Sep 17 00:00:00 2001
From: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com>
Date: Fri, 10 May 2019 18:17:47 +0530
Subject: [PATCH] fix: Auto email support for Custom Reports (#7441)
* fix: Added reference_report field
* fix: Auto email support for custom reports
* fix: Styling fixes
* fix: Use let instead of var
---
frappe/core/doctype/report/report.py | 2 +-
.../auto_email_report/auto_email_report.js | 16 +++++-
.../auto_email_report/auto_email_report.json | 57 ++++++++++++++++++-
3 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/frappe/core/doctype/report/report.py b/frappe/core/doctype/report/report.py
index 789c989439..cbec5ecbbc 100644
--- a/frappe/core/doctype/report/report.py
+++ b/frappe/core/doctype/report/report.py
@@ -100,7 +100,7 @@ class Report(Document):
columns = []
out = []
- if self.report_type in ('Query Report', 'Script Report'):
+ if self.report_type in ('Query Report', 'Script Report', 'Custom Report'):
# query and script reports
data = frappe.desk.query_report.run(self.name, filters=filters, user=user)
for d in data.get('columns'):
diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.js b/frappe/email/doctype/auto_email_report/auto_email_report.js
index ba8ab37a99..d19ddb3f67 100644
--- a/frappe/email/doctype/auto_email_report/auto_email_report.js
+++ b/frappe/email/doctype/auto_email_report/auto_email_report.js
@@ -54,9 +54,9 @@ frappe.ui.form.on('Auto Email Report', {
show_filters: function(frm) {
var wrapper = $(frm.get_field('filters_display').wrapper);
wrapper.empty();
- if(frm.doc.report_type !== 'Report Builder'
+ if(frm.doc.report_type === 'Custom Report' || (frm.doc.report_type !== 'Report Builder'
&& frappe.query_reports[frm.doc.report]
- && frappe.query_reports[frm.doc.report].filters) {
+ && frappe.query_reports[frm.doc.report].filters)) {
// make a table to show filters
var table = $('
\
@@ -65,7 +65,17 @@ frappe.ui.form.on('Auto Email Report', {
$('' + __("Click table to edit") + '
').appendTo(wrapper);
var filters = JSON.parse(frm.doc.filters || '{}');
- var report_filters = frappe.query_reports[frm.doc.report].filters;
+
+ let report_filters;
+
+ if (frm.doc.report_type === 'Custom Report'
+ && frappe.query_reports[frm.doc.reference_report]
+ && frappe.query_reports[frm.doc.reference_report].filters) {
+ report_filters = frappe.query_reports[frm.doc.reference_report].filters;
+ } else {
+ report_filters = frappe.query_reports[frm.doc.report].filters;
+ }
+
if(report_filters && report_filters.length > 0) {
frm.set_value('filter_meta', JSON.stringify(report_filters));
}
diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.json b/frappe/email/doctype/auto_email_report/auto_email_report.json
index f04f34cdba..b6de0a16fc 100644
--- a/frappe/email/doctype/auto_email_report/auto_email_report.json
+++ b/frappe/email/doctype/auto_email_report/auto_email_report.json
@@ -21,6 +21,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "report",
"fieldtype": "Link",
"hidden": 0,
@@ -55,6 +56,7 @@
"collapsible": 0,
"columns": 0,
"default": "User",
+ "fetch_if_empty": 0,
"fieldname": "user",
"fieldtype": "Link",
"hidden": 0,
@@ -89,6 +91,7 @@
"collapsible": 0,
"columns": 0,
"default": "1",
+ "fetch_if_empty": 0,
"fieldname": "enabled",
"fieldtype": "Check",
"hidden": 0,
@@ -121,6 +124,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "column_break_4",
"fieldtype": "Column Break",
"hidden": 0,
@@ -153,6 +157,7 @@
"collapsible": 0,
"columns": 0,
"fetch_from": "report.report_type",
+ "fetch_if_empty": 0,
"fieldname": "report_type",
"fieldtype": "Read Only",
"hidden": 0,
@@ -186,6 +191,41 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_from": "report.reference_report",
+ "fetch_if_empty": 0,
+ "fieldname": "reference_report",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Reference Report",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "filter_data",
"fieldtype": "Section Break",
"hidden": 0,
@@ -219,6 +259,7 @@
"collapsible": 0,
"columns": 0,
"default": "1",
+ "fetch_if_empty": 0,
"fieldname": "send_if_data",
"fieldtype": "Check",
"hidden": 0,
@@ -254,6 +295,7 @@
"default": "",
"depends_on": "eval:doc.report_type=='Report Builder'",
"description": "Zero means send records updated at anytime",
+ "fetch_if_empty": 0,
"fieldname": "data_modified_till",
"fieldtype": "Int",
"hidden": 0,
@@ -288,6 +330,7 @@
"columns": 0,
"default": "100",
"description": "",
+ "fetch_if_empty": 0,
"fieldname": "no_of_rows",
"fieldtype": "Int",
"hidden": 0,
@@ -321,6 +364,7 @@
"collapsible": 1,
"columns": 0,
"depends_on": "eval:doc.report_type !== 'Report Builder'",
+ "fetch_if_empty": 0,
"fieldname": "report_filters",
"fieldtype": "Section Break",
"hidden": 0,
@@ -353,6 +397,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "filters_display",
"fieldtype": "HTML",
"hidden": 0,
@@ -385,6 +430,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "filters",
"fieldtype": "Text",
"hidden": 1,
@@ -417,6 +463,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "filter_meta",
"fieldtype": "Text",
"hidden": 1,
@@ -449,6 +496,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "email_settings",
"fieldtype": "Section Break",
"hidden": 0,
@@ -481,6 +529,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "email_to",
"fieldtype": "Small Text",
"hidden": 0,
@@ -515,6 +564,7 @@
"columns": 0,
"default": "Monday",
"depends_on": "eval:doc.frequency=='Weekly'",
+ "fetch_if_empty": 0,
"fieldname": "day_of_week",
"fieldtype": "Select",
"hidden": 0,
@@ -548,6 +598,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "column_break_13",
"fieldtype": "Column Break",
"hidden": 0,
@@ -579,6 +630,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "frequency",
"fieldtype": "Select",
"hidden": 0,
@@ -612,6 +664,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "format",
"fieldtype": "Select",
"hidden": 0,
@@ -645,6 +698,7 @@
"bold": 0,
"collapsible": 1,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "section_break_15",
"fieldtype": "Section Break",
"hidden": 0,
@@ -677,6 +731,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fetch_if_empty": 0,
"fieldname": "description",
"fieldtype": "Text Editor",
"hidden": 0,
@@ -713,7 +768,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-11-13 01:59:17.816718",
+ "modified": "2019-05-09 21:45:36.944865",
"modified_by": "Administrator",
"module": "Email",
"name": "Auto Email Report",