From b29d4dc47a39e984470c0a8befad0b7edbbd307f Mon Sep 17 00:00:00 2001 From: Shridhar Date: Thu, 1 Feb 2018 22:22:56 +0530 Subject: [PATCH 1/2] File upload without socketio System setting to select socketio for upload --- .../system_settings/system_settings.json | 33 ++++++++++++++++++- frappe/public/js/frappe/socketio_client.js | 18 +++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json index c336db2876..d108d8c987 100644 --- a/frappe/core/doctype/system_settings/system_settings.json +++ b/frappe/core/doctype/system_settings/system_settings.json @@ -1359,6 +1359,37 @@ "search_index": 0, "set_only_once": 0, "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "1", + "fieldname": "use_socketio_to_upload_file", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Use socketio to upload file", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], "has_web_view": 0, @@ -1372,7 +1403,7 @@ "issingle": 1, "istable": 0, "max_attachments": 0, - "modified": "2018-01-16 07:19:46.261735", + "modified": "2018-02-01 21:58:50.907240", "modified_by": "Administrator", "module": "Core", "name": "System Settings", diff --git a/frappe/public/js/frappe/socketio_client.js b/frappe/public/js/frappe/socketio_client.js index b6785de49f..3c63fa90c3 100644 --- a/frappe/public/js/frappe/socketio_client.js +++ b/frappe/public/js/frappe/socketio_client.js @@ -328,6 +328,22 @@ frappe.socketio.SocketIOUploader = class SocketIOUploader { frappe.throw(__('File Upload in Progress. Please try again in a few moments.')); } + frappe.model.get_value( + 'System Settings', + {'name': 'System Settings'}, + 'use_socketio_to_upload_file', + function(d) { + if (d.use_socketio_to_upload_file==1){ + if (fallback) { + fallback(); + return; + } else { + frappe.throw(__('Socketio is not connected. Cannot upload')); + } + } + } + ) + if (!frappe.socketio.socket.connected) { if (fallback) { fallback(); @@ -391,4 +407,4 @@ frappe.socketio.SocketIOUploader = class SocketIOUploader { } } } -} \ No newline at end of file +} From 692ac54d00c11fac11a791397c3481fb77f46d9a Mon Sep 17 00:00:00 2001 From: Prateeksha Singh Date: Thu, 28 Jun 2018 17:19:10 +0530 Subject: [PATCH 2/2] [prepared-report] add download report --- .../doctype/prepared_report/prepared_report.js | 5 ++++- .../doctype/prepared_report/prepared_report.py | 9 ++++++++- .../public/js/frappe/views/reports/query_report.js | 14 +++++++++++--- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/frappe/core/doctype/prepared_report/prepared_report.js b/frappe/core/doctype/prepared_report/prepared_report.js index 3081d76030..587bf2b5c3 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.js +++ b/frappe/core/doctype/prepared_report/prepared_report.js @@ -12,7 +12,10 @@ frappe.ui.form.on('Prepared Report', { callback: function(r) { if(r.message) { let data = r.message; - frappe.flags.prepared_report_data = data; + frappe.flags.prepared_report = { + data: data, + name: frm.doc.name + }; frappe.set_route("query-report", frm.doc.report_name); } diff --git a/frappe/core/doctype/prepared_report/prepared_report.py b/frappe/core/doctype/prepared_report/prepared_report.py index 2fd550886c..663d5a84a0 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.py +++ b/frappe/core/doctype/prepared_report/prepared_report.py @@ -13,7 +13,8 @@ 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.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): @@ -66,3 +67,9 @@ def get_report_attachment_data(dn): 'columns': data[0], '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/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 0bd406b17a..36d9cb2158 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -207,9 +207,18 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { this.toggle_message(true); const filters = this.get_filter_values(true); - const prepared_data = frappe.flags.prepared_report_data + const flags = frappe.flags.prepared_report; + + const prepared_data = flags.data; if(prepared_data) { this.init_report_with_data(prepared_data); + + this.downloadifypage.add_inner_button(__("Download Report"), function () { + frappe.call({ + method:"frappe.core.doctype.prepared_report.prepared_report.download_attachment", + args: {"dn": flags.name} + }); + }); return; } @@ -261,7 +270,6 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { this.columns = this.prepare_columns(data.columns); this.data = this.prepare_data(data.result); - console.log(data.columns.slice(0, 2), data); this.tree_report = this.data.some(d => 'indent' in d); const columns = this.get_visible_columns(); @@ -271,7 +279,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { } this.datatable = new DataTable(this.$report[0], { - columns: columns.slice(0, 2), + columns: columns, data: this.data, inlineFilters: true, treeView: this.tree_report,