[fix] small bug with o2m & editable lists

bzr revid: nicolas.vanhoren@openerp.com-20110704083858-n9d4bopimfmhdg32
This commit is contained in:
niv-openerp 2011-07-04 10:38:58 +02:00
parent 63ebd1cdb3
commit c8e8b7cc26
2 changed files with 19 additions and 16 deletions

View File

@ -483,7 +483,6 @@ openerp.base.BufferedDataSet = openerp.base.DataSetStatic.extend({
var cached = {id:_.uniqueId(this.virtual_id_prefix), values: data};
this.to_create.push(cached);
this.cache.push(cached);
this.on_change();
var to_return = $.Deferred().then(callback);
setTimeout(function() {to_return.resolve({result: cached.id});}, 0);
return to_return.promise();

View File

@ -1585,22 +1585,26 @@ openerp.base.form.One2ManyDataSet = openerp.base.BufferedDataSet.extend({
openerp.base.form.One2ManyListView = openerp.base.ListView.extend({
do_add_record: function () {
var self = this;
var pop = new openerp.base.form.SelectCreatePopup(null, self.o2m.view.session);
pop.select_element(self.o2m.field.relation,{
initial_view: "form",
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
auto_create: false,
parent_view: self.o2m.view
}, self.o2m.build_domain(), self.o2m.build_context());
pop.on_create.add(function(data) {
self.o2m.dataset.create(data, function(r) {
self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r.result]));
self.o2m.dataset.on_change();
pop.stop();
self.o2m.reload_current_view();
if (this.options.editable) {
this._super.apply(this, arguments);
} else {
var self = this;
var pop = new openerp.base.form.SelectCreatePopup(null, self.o2m.view.session);
pop.select_element(self.o2m.field.relation,{
initial_view: "form",
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
auto_create: false,
parent_view: self.o2m.view
}, self.o2m.build_domain(), self.o2m.build_context());
pop.on_create.add(function(data) {
self.o2m.dataset.create(data, function(r) {
self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r.result]));
self.o2m.dataset.on_change();
pop.stop();
self.o2m.reload_current_view();
});
});
});
}
}
});