From e468eeb9b30af8ff54c006657d79f5cff32919c4 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 28 Nov 2013 14:46:07 +0100 Subject: [PATCH] [FIX] web_form: FieldMany2ManyBinaryMultiFiles error when rendering twice (with an onchange for e.g.) bzr revid: chm@openerp.com-20131128134607-2fisdnoq0qgpvibx --- addons/web/static/src/js/view_form.js | 13 +++++++------ addons/web/static/src/xml/base.xml | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 94fc38faa23..57ac87c8d09 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -5379,25 +5379,26 @@ instance.web.form.FieldMany2ManyBinaryMultiFiles = instance.web.form.AbstractFie read_name_values : function () { var self = this; // don't reset know values - var _value = _.filter(this.get('value'), function (id) { return typeof self.data[id] == 'undefined'; } ); + var ids = this.get('value'); + var _value = _.filter(ids, function (id) { return typeof self.data[id] == 'undefined'; } ); // send request for get_name if (_value.length) { - return this.ds_file.call('read', [_value, ['id', 'name', 'datas_fname']]).done(function (datas) { + return this.ds_file.call('read', [_value, ['id', 'name', 'datas_fname']]).then(function (datas) { _.each(datas, function (data) { data.no_unlink = true; data.url = self.session.url('/web/binary/saveas', {model: 'ir.attachment', field: 'datas', filename_field: 'datas_fname', id: data.id}); self.data[data.id] = data; }); + return ids; }); } else { - return $.when(); + return $.when(ids); } }, render_value: function () { var self = this; - this.read_name_values().then(function () { - - var render = $(instance.web.qweb.render('FieldBinaryFileUploader.files', {'widget': self})); + this.read_name_values().then(function (ids) { + var render = $(instance.web.qweb.render('FieldBinaryFileUploader.files', {'widget': self, 'values': ids})); render.on('click', '.oe_delete', _.bind(self.on_file_delete, self)); self.$('.oe_placeholder_files, .oe_attachments').replaceWith( render ); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 60a344467c0..78398071c22 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1334,7 +1334,7 @@
- +