diff --git a/frappe/core/doctype/prepared_report/prepared_report.py b/frappe/core/doctype/prepared_report/prepared_report.py index 55ab471fca..a0fe22aa92 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.py +++ b/frappe/core/doctype/prepared_report/prepared_report.py @@ -11,13 +11,14 @@ import frappe from frappe.model.document import Document from frappe.utils.background_jobs import enqueue from frappe.desk.query_report import generate_report_result, get_columns_dict -from frappe.utils.file_manager import save_file +from frappe.utils.file_manager import save_file, remove_all from frappe.utils.csvutils import to_csv, read_csv_content_from_attached_file from frappe.desk.form.load import get_attachments from frappe.utils.file_manager import download_file class PreparedReport(Document): + def before_insert(self): self.status = "Queued" self.report_start_time = frappe.utils.now() @@ -28,6 +29,9 @@ class PreparedReport(Document): instance=self, timeout=6000 ) + def on_trash(self): + remove_all("PreparedReport", self.name, from_delete=True) + def run_background(instance): report = frappe.get_doc("Report", instance.ref_report_doctype) @@ -47,6 +51,7 @@ def run_background(instance): # TODO: # Send Email to user + def remove_header_meta(columns): column_list = [] columns_header = get_columns_dict(columns) @@ -81,8 +86,8 @@ def get_report_attachment_data(dn): 'result': data[1:] } + @frappe.whitelist() def download_attachment(dn): - doc = frappe.get_doc("Prepared Report", dn) attachment = get_attachments("Prepared Report", dn)[0] download_file(attachment.file_url) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index d87bb68ed7..0d031fd9f6 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -11,7 +11,6 @@ from frappe.modules import scrub, get_module_path from frappe.utils import flt, cint, get_html_format, cstr, get_url_to_form from frappe.model.utils import render_include from frappe.translate import send_translations -from frappe.utils.csvutils import read_csv_content_from_attached_file import frappe.desk.reportview from frappe.utils.csvutils import read_csv_content_from_attached_file from frappe.permissions import get_role_permissions diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index d73c09cb1d..8116f12afe 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -67,7 +67,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { View`; frappe.show_alert({message: alert_message, indicator: 'orange'}); } - }) + }); } load() { @@ -225,7 +225,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { } refresh() { - this.toggle_message(true); + this.toggle_message(true); let filters = this.get_filter_values(true); let query = frappe.utils.get_query_string(frappe.get_route_str()); @@ -264,13 +264,13 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { } add_prepared_report_buttons(doc) { - if (doc){ - this.page.add_inner_button(__("Download Report"), function () { + if(doc){ + this.page.add_inner_button(__("Download Report"), function (){ frappe.call({ method:"frappe.core.doctype.prepared_report.prepared_report.download_attachment", args: {"dn": flags.name} }); - }); + }); frappe.route_options = { report_name: doc.report_name, @@ -301,7 +301,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { filters: filters }, callback: resolve - })).then(r => { + })).then(r => { const data = r.message; let alert_message = `Report initiated. You can track its status here`; @@ -310,9 +310,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { }); } }, "", "primary"); - - - } + } render_report(data) { this.columns = this.prepare_columns(data.columns);