From 2f3b763f375765c426964c9a5d0795b3c7526a64 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 29 Nov 2017 09:10:06 +0100 Subject: [PATCH 1/3] [FIX] decode html entities --- web_export_view/static/src/js/web_export_view.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web_export_view/static/src/js/web_export_view.js b/web_export_view/static/src/js/web_export_view.js index 2bd05661..cadc6cda 100644 --- a/web_export_view/static/src/js/web_export_view.js +++ b/web_export_view/static/src/js/web_export_view.js @@ -87,9 +87,9 @@ openerp.web_export_view = function (instance) { $.each(view.visible_columns, function() { export_row.push( this.type != 'integer' && this.type != 'float' ? - this.format( + jQuery('
').html(this.format( record.data, {process_modifiers: false} - ) : record.data[this.id].value + )).text() : record.data[this.id].value ); }) export_rows.push(export_row); From b71c1b626a87e312f2257612e8af5943457828c1 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 29 Nov 2017 12:21:56 +0100 Subject: [PATCH 2/3] [FIX] x2many fields --- .../static/src/js/web_export_view.js | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/web_export_view/static/src/js/web_export_view.js b/web_export_view/static/src/js/web_export_view.js index cadc6cda..8aa0e20b 100644 --- a/web_export_view/static/src/js/web_export_view.js +++ b/web_export_view/static/src/js/web_export_view.js @@ -37,6 +37,7 @@ openerp.web_export_view = function (instance) { // or assume the main view is a list view and use that var self = this, view = this.getParent(), + fields_view = view.fields_view, children = view.getChildren(), deferred = new jQuery.Deferred(); if (children) { @@ -79,6 +80,55 @@ openerp.web_export_view = function (instance) { String(view.dataset.domain || _('All records')) ); } + var x2many = _(export_columns_keys).filter(function(field) { + return ['one2many', 'many2many'] + .indexOf(fields_view.fields[field].type) > -1; + }); + if(x2many.length) { + deferred = deferred.then(function(records) { + var name_gets = [], names = {}; + _(records).chain().map(function(record) { + return _(record).chain().pairs().filter(function(pair) + { + return x2many.indexOf(pair[0]) > -1; + }) + .value() + }) + .flatten(true) + .groupBy(0) + .each(function(pairs, field) { + name_gets.push( + new instance.web.Model( + fields_view.fields[field].relation + ) + .call('name_get', [ + _(pairs).chain().pluck(1).flatten(true) + .value(), + view.dataset.get_context() + ]) + .then(function(name_gets) { + names[field] = _.object(name_gets); + }) + ); + }) + return jQuery.when.apply(jQuery, name_gets) + .then(function() { + _(records).each(function(record) { + _(x2many).each(function(field) { + record[field] = _(record[field]) + .map(function(id) { + return names[field][id]; + }) + .join(', '); + record[ + _.str.sprintf('%s__display', field) + ] = record[field]; + }); + }); + return records; + }); + }); + } return deferred.then(function(records) { var export_rows = []; $.each(records, function(index, record) { From c223b991cee65bdf620b9282345a1fc2570712f5 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 29 Nov 2017 16:18:29 +0100 Subject: [PATCH 3/3] [ADD] show a nicer writeup of selected domain --- web_export_view/static/src/js/web_export_view.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web_export_view/static/src/js/web_export_view.js b/web_export_view/static/src/js/web_export_view.js index 8aa0e20b..2439f9e8 100644 --- a/web_export_view/static/src/js/web_export_view.js +++ b/web_export_view/static/src/js/web_export_view.js @@ -77,7 +77,12 @@ openerp.web_export_view = function (instance) { else { deferred = view.dataset.read_slice(export_columns_keys); export_columns_names.push( - String(view.dataset.domain || _('All records')) + _t('Selected records:') + ' ' + + String( + _(view.ViewManager.searchview.query.pluck('values')) + .chain().flatten(true).pluck('label').value() + .join('; ') || _('All records') + ) ); } var x2many = _(export_columns_keys).filter(function(field) {