Browse Source

Obey slickgrid's inline filter for (#3291)

- Print PDF
- Export to Excel

Fixes frappe/erpnext#3747
version-14
Faris Ansari 8 years ago
committed by Rushabh Mehta
parent
commit
1eb9562a3c
2 changed files with 20 additions and 7 deletions
  1. +5
    -0
      frappe/desk/query_report.py
  2. +15
    -7
      frappe/public/js/frappe/views/reports/query_report.js

+ 5
- 0
frappe/desk/query_report.py View File

@@ -127,6 +127,8 @@ def export_query():
report_name = data["report_name"] report_name = data["report_name"]
if isinstance(data.get("file_format_type"), basestring): if isinstance(data.get("file_format_type"), basestring):
file_format_type = data["file_format_type"] file_format_type = data["file_format_type"]
if isinstance(data.get("visible_idx"), basestring):
visible_idx = json.loads(data.get("visible_idx"))


if file_format_type == "Excel": if file_format_type == "Excel":


@@ -150,6 +152,9 @@ def export_query():
result.append(row_list) result.append(row_list)
else: else:
result = result + data.result result = result + data.result
# filter rows by slickgrid's inline filter
result = [x for idx, x in enumerate(result) if idx == 0 or idx in visible_idx]


from frappe.utils.xlsxutils import make_xlsx from frappe.utils.xlsxutils import make_xlsx
xlsx_file = make_xlsx(result, "Query Report") xlsx_file = make_xlsx(result, "Query Report")


+ 15
- 7
frappe/public/js/frappe/views/reports/query_report.js View File

@@ -228,8 +228,15 @@ frappe.views.QueryReport = Class.extend({
print_settings: this.print_settings print_settings: this.print_settings
}); });
} else { } else {
// rows filtered by inline_filter of slickgrid
var visible_idx = frappe.slickgrid_tools
.get_view_data(this.columns, this.dataView)
.map(row => row[0]).filter(idx => idx !== 'Sr No');

var columns = this.grid.getColumns(); var columns = this.grid.getColumns();
var data = this.grid.getData().getItems(); var data = this.grid.getData().getItems();
data = data.filter(d => visible_idx.includes(d._id));

var content = frappe.render_template("print_grid", { var content = frappe.render_template("print_grid", {
columns:columns, columns:columns,
data:data, data:data,
@@ -813,13 +820,13 @@ frappe.views.QueryReport = Class.extend({
frappe.prompt({fieldtype:"Select", label: __("Select File Type"), fieldname:"file_format_type", frappe.prompt({fieldtype:"Select", label: __("Select File Type"), fieldname:"file_format_type",
options:"Excel\nCSV", default:"Excel", reqd: 1}, options:"Excel\nCSV", default:"Excel", reqd: 1},
function(data) { function(data) {
var view_data = frappe.slickgrid_tools.get_view_data(me.columns, me.dataView);
var result = view_data.map(row => [row.splice(1)]);


if (data.file_format_type == "CSV") {
// rows filtered by inline_filter of slickgrid
var visible_idx = view_data.map(row => row[0]).filter(sr_no => sr_no !== 'Sr No');


var result = $.map(frappe.slickgrid_tools.get_view_data(me.columns, me.dataView),
function(row) {
return [row.splice(1)];
});
if (data.file_format_type == "CSV") {
frappe.tools.downloadify(result, null, me.title); frappe.tools.downloadify(result, null, me.title);
} }


@@ -833,8 +840,9 @@ frappe.views.QueryReport = Class.extend({
cmd: 'frappe.desk.query_report.export_query', cmd: 'frappe.desk.query_report.export_query',
report_name: me.report_name, report_name: me.report_name,
file_format_type: data.file_format_type, file_format_type: data.file_format_type,
filters: filters
};
filters: filters,
visible_idx: visible_idx,
}


open_url_post(frappe.request.url, args); open_url_post(frappe.request.url, args);
} }


Loading…
Cancel
Save