Преглед изворни кода

Obey slickgrid's inline filter for (#3291)

- Print PDF
- Export to Excel

Fixes frappe/erpnext#3747
version-14
Faris Ansari пре 8 година
committed by Rushabh Mehta
родитељ
комит
1eb9562a3c
2 измењених фајлова са 20 додато и 7 уклоњено
  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 Прегледај датотеку

@@ -127,6 +127,8 @@ def export_query():
report_name = data["report_name"]
if isinstance(data.get("file_format_type"), basestring):
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":

@@ -150,6 +152,9 @@ def export_query():
result.append(row_list)
else:
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
xlsx_file = make_xlsx(result, "Query Report")


+ 15
- 7
frappe/public/js/frappe/views/reports/query_report.js Прегледај датотеку

@@ -228,8 +228,15 @@ frappe.views.QueryReport = Class.extend({
print_settings: this.print_settings
});
} 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 data = this.grid.getData().getItems();
data = data.filter(d => visible_idx.includes(d._id));

var content = frappe.render_template("print_grid", {
columns:columns,
data:data,
@@ -813,13 +820,13 @@ frappe.views.QueryReport = Class.extend({
frappe.prompt({fieldtype:"Select", label: __("Select File Type"), fieldname:"file_format_type",
options:"Excel\nCSV", default:"Excel", reqd: 1},
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);
}

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

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


Loading…
Откажи
Сачувај