[FIX] web_form: FieldMany2ManyBinaryMultiFiles error when rendering twice (with an onchange for e.g.)

bzr revid: chm@openerp.com-20131128134607-2fisdnoq0qgpvibx
This commit is contained in:
Christophe Matthieu 2013-11-28 14:46:07 +01:00
parent fbb5ddce18
commit e468eeb9b3
2 changed files with 8 additions and 7 deletions

View File

@ -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 );

View File

@ -1334,7 +1334,7 @@
<t t-name="FieldBinaryFileUploader.files">
<div class="oe_attachments">
<t t-if="!widget.get('effective_readonly')">
<t t-foreach="widget.get('value')" t-as="id">
<t t-foreach="values" t-as="id">
<t t-set="file" t-value="widget.data[id]"/>
<div class="oe_attachment">
<span t-if="(file.upload or file.percent_loaded&lt;100)" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}" t-attf-name="{file.name || file.filename}">