[init] add show report in prepared report
This commit is contained in:
parent
0cf28e70f5
commit
c2714903fe
4 changed files with 57 additions and 17 deletions
|
|
@ -2,7 +2,23 @@
|
|||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Prepared Report', {
|
||||
refresh: function() {
|
||||
refresh: function(frm) {
|
||||
frm.add_custom_button(__("Show Report"), function() {
|
||||
return frm.call({
|
||||
method: "frappe.core.doctype.prepared_report.prepared_report.get_report_attachment_data",
|
||||
args: {
|
||||
dn: frm.doc.name
|
||||
},
|
||||
callback: function(r) {
|
||||
if(r.message) {
|
||||
let data = r.message;
|
||||
frappe.flags.prepared_report_data = data;
|
||||
|
||||
frappe.set_route("query-report", frm.doc.report_name);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ 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.csvutils import to_csv
|
||||
from frappe.utils.csvutils import to_csv, read_csv_content_from_attached_file
|
||||
|
||||
|
||||
class PreparedReport(Document):
|
||||
|
|
@ -55,3 +55,14 @@ def create_csv_file(columns, data, dt, dn):
|
|||
decode=True,
|
||||
is_private=False)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_report_attachment_data(dn):
|
||||
|
||||
doc = frappe.get_doc("Prepared Report", dn)
|
||||
data = read_csv_content_from_attached_file(doc)
|
||||
|
||||
return {
|
||||
'columns': data[0],
|
||||
'result': data[-1:]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
"doctype": "Report",
|
||||
"idx": 3,
|
||||
"is_standard": "Yes",
|
||||
"modified": "2018-06-26 23:25:25.154670",
|
||||
"modified": "2018-06-28 13:50:17.934400",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Core",
|
||||
"name": "Permitted Documents For User",
|
||||
"owner": "Administrator",
|
||||
"prepared_report": 0,
|
||||
"prepared_report": 1,
|
||||
"ref_doctype": "User",
|
||||
"report_name": "Permitted Documents For User",
|
||||
"report_type": "Script Report",
|
||||
|
|
|
|||
|
|
@ -206,6 +206,13 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
|
|||
refresh() {
|
||||
this.toggle_message(true);
|
||||
const filters = this.get_filter_values(true);
|
||||
|
||||
const prepared_data = frappe.flags.prepared_report_data
|
||||
if(prepared_data) {
|
||||
this.init_report_with_data(prepared_data);
|
||||
return;
|
||||
}
|
||||
|
||||
return new Promise(resolve => frappe.call({
|
||||
method: 'frappe.desk.query_report.run',
|
||||
type: 'GET',
|
||||
|
|
@ -215,20 +222,24 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
|
|||
},
|
||||
callback: resolve
|
||||
})).then(r => {
|
||||
const data = r.message;
|
||||
if (data.prepared_report){
|
||||
this.toggle_button(true, data.file_attachment);
|
||||
}else{
|
||||
this.toggle_message(false);
|
||||
if (data.result && data.result.length) {
|
||||
this.render_chart(data);
|
||||
this.render_report(data);
|
||||
} else {
|
||||
this.toggle_nothing_to_show(true);
|
||||
}
|
||||
}
|
||||
this.init_report_with_data(r.message);
|
||||
});
|
||||
}
|
||||
|
||||
init_report_with_data(data) {
|
||||
if (data.prepared_report){
|
||||
this.toggle_button(true, data.file_attachment);
|
||||
}else{
|
||||
this.toggle_message(false);
|
||||
if (data.result && data.result.length) {
|
||||
this.render_chart(data);
|
||||
this.render_report(data);
|
||||
} else {
|
||||
this.toggle_nothing_to_show(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
render_background_report() {
|
||||
this.toggle_message(true);
|
||||
const filters = this.get_filter_values(true);
|
||||
|
|
@ -249,6 +260,8 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
|
|||
render_report(data) {
|
||||
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();
|
||||
|
|
@ -258,7 +271,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
|
|||
}
|
||||
|
||||
this.datatable = new DataTable(this.$report[0], {
|
||||
columns: columns,
|
||||
columns: columns.slice(0, 2),
|
||||
data: this.data,
|
||||
inlineFilters: true,
|
||||
treeView: this.tree_report,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue