From 70944cabb33ba770b19c4b923026c50166bc544f Mon Sep 17 00:00:00 2001 From: Vimal Patel Date: Wed, 7 Jun 2023 12:25:52 +0100 Subject: [PATCH 1/7] fix: New Dashboard Chart throws TypeError: format requires a mapping closes #21250 --- frappe/desk/query_report.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index 6f4bc716aa..814f556a0d 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -165,7 +165,8 @@ def get_script(report_name): script += f"\n\n//# sourceURL={scrub(report.name)}__custom" if not script: - script = "frappe.query_reports['%s']={}" % report_name + filters = json.dumps([prepare_filter(filter) for filter in report.filters]) + script = "frappe.query_reports['%s']={ 'filters': %s}" % (report_name, filters) return { "script": render_include(script), @@ -174,6 +175,18 @@ def get_script(report_name): } +def prepare_filter(filter): + filter = { + "fieldname": filter.fieldname, + "label": filter.label, + "fieldtype": filter.fieldtype, + "width": "80", + "options": filter.options, + "reqd": 1 + } + return filter + + @frappe.whitelist() @frappe.read_only() def run( From 0d729e5e47c4a27204877af8b11e466cac72d823 Mon Sep 17 00:00:00 2001 From: Vimal Patel Date: Thu, 8 Jun 2023 11:07:22 +0100 Subject: [PATCH 2/7] fix: New Dashboard Chart throws TypeError: format requires a mapping closes #21250 backport version-14-hotfix --- frappe/desk/query_report.py | 6 +++--- frappe/public/js/frappe/views/reports/report_utils.js | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index 814f556a0d..fb8e39a495 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -165,13 +165,13 @@ def get_script(report_name): script += f"\n\n//# sourceURL={scrub(report.name)}__custom" if not script: - filters = json.dumps([prepare_filter(filter) for filter in report.filters]) - script = "frappe.query_reports['%s']={ 'filters': %s}" % (report_name, filters) + script = "frappe.query_reports['%s']={}" % report_name return { "script": render_include(script), "html_format": html_format, - "execution_time": frappe.cache.hget("report_execution_time", report_name) or 0, + "execution_time": frappe.cache().hget("report_execution_time", report_name) or 0, + "filters": report.filters } diff --git a/frappe/public/js/frappe/views/reports/report_utils.js b/frappe/public/js/frappe/views/reports/report_utils.js index 9713f8bb99..c1402aa562 100644 --- a/frappe/public/js/frappe/views/reports/report_utils.js +++ b/frappe/public/js/frappe/views/reports/report_utils.js @@ -126,6 +126,13 @@ frappe.report_utils = { .then((r) => { frappe.dom.eval(r.script || ""); return frappe.after_ajax(() => { + if ( + frappe.query_reports[report_name] && + !frappe.query_reports[report_name].filter && + r.filters + ) { + return frappe.query_reports[report_name].filters = r.filters + } return ( frappe.query_reports[report_name] && frappe.query_reports[report_name].filters From 48b9128904d84cdaefbf333e78ccdcccc931b104 Mon Sep 17 00:00:00 2001 From: Vimal Patel Date: Thu, 8 Jun 2023 11:26:22 +0100 Subject: [PATCH 3/7] fix: remove redundant prepare_filter method --- frappe/desk/query_report.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index fb8e39a495..9e003c0e2f 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -170,23 +170,11 @@ def get_script(report_name): return { "script": render_include(script), "html_format": html_format, - "execution_time": frappe.cache().hget("report_execution_time", report_name) or 0, + "execution_time": frappe.cache.hget("report_execution_time", report_name) or 0, "filters": report.filters } -def prepare_filter(filter): - filter = { - "fieldname": filter.fieldname, - "label": filter.label, - "fieldtype": filter.fieldtype, - "width": "80", - "options": filter.options, - "reqd": 1 - } - return filter - - @frappe.whitelist() @frappe.read_only() def run( From 428eaf6a1681c32c629815e41a9e80a5b0d14f9f Mon Sep 17 00:00:00 2001 From: Shariq Ansari <30859809+shariquerik@users.noreply.github.com> Date: Thu, 8 Jun 2023 16:52:24 +0530 Subject: [PATCH 4/7] chore: linter fix --- frappe/desk/query_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index 9e003c0e2f..5b7c450ae9 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -171,7 +171,7 @@ def get_script(report_name): "script": render_include(script), "html_format": html_format, "execution_time": frappe.cache.hget("report_execution_time", report_name) or 0, - "filters": report.filters + "filters": report.filters, } From 108e128b46bbf3183833503f21c57774fcc732be Mon Sep 17 00:00:00 2001 From: Shariq Ansari <30859809+shariquerik@users.noreply.github.com> Date: Thu, 8 Jun 2023 16:52:52 +0530 Subject: [PATCH 5/7] chore: linter fix --- frappe/public/js/frappe/views/reports/report_utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/views/reports/report_utils.js b/frappe/public/js/frappe/views/reports/report_utils.js index c1402aa562..1d33701147 100644 --- a/frappe/public/js/frappe/views/reports/report_utils.js +++ b/frappe/public/js/frappe/views/reports/report_utils.js @@ -131,7 +131,7 @@ frappe.report_utils = { !frappe.query_reports[report_name].filter && r.filters ) { - return frappe.query_reports[report_name].filters = r.filters + return (frappe.query_reports[report_name].filters = r.filters) } return ( frappe.query_reports[report_name] && From fa502278f42c0551f8d18f84431b827560a4b730 Mon Sep 17 00:00:00 2001 From: Shariq Ansari <30859809+shariquerik@users.noreply.github.com> Date: Thu, 8 Jun 2023 16:53:17 +0530 Subject: [PATCH 6/7] chore --- frappe/public/js/frappe/views/reports/report_utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/views/reports/report_utils.js b/frappe/public/js/frappe/views/reports/report_utils.js index 1d33701147..d09cbfd285 100644 --- a/frappe/public/js/frappe/views/reports/report_utils.js +++ b/frappe/public/js/frappe/views/reports/report_utils.js @@ -131,7 +131,7 @@ frappe.report_utils = { !frappe.query_reports[report_name].filter && r.filters ) { - return (frappe.query_reports[report_name].filters = r.filters) + return (frappe.query_reports[report_name].filters = r.filters); } return ( frappe.query_reports[report_name] && From 666813158c2618fff0ce65ef014d2af09d8de562 Mon Sep 17 00:00:00 2001 From: Shariq Ansari <30859809+shariquerik@users.noreply.github.com> Date: Thu, 8 Jun 2023 17:12:03 +0530 Subject: [PATCH 7/7] chore: linter fix --- frappe/public/js/frappe/views/reports/report_utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/views/reports/report_utils.js b/frappe/public/js/frappe/views/reports/report_utils.js index d09cbfd285..d75716541b 100644 --- a/frappe/public/js/frappe/views/reports/report_utils.js +++ b/frappe/public/js/frappe/views/reports/report_utils.js @@ -132,7 +132,7 @@ frappe.report_utils = { r.filters ) { return (frappe.query_reports[report_name].filters = r.filters); - } + } return ( frappe.query_reports[report_name] && frappe.query_reports[report_name].filters