From c8e8b7cc26098bca2d0215222394c285c98b2d8c Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 4 Jul 2011 10:38:58 +0200 Subject: [PATCH] [fix] small bug with o2m & editable lists bzr revid: nicolas.vanhoren@openerp.com-20110704083858-n9d4bopimfmhdg32 --- addons/base/static/src/js/data.js | 1 - addons/base/static/src/js/form.js | 34 +++++++++++++++++-------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index a8cdfb7f201..ff74fa1639f 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -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(); diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index bfa62f102cc..f67543503d2 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -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(); + }); }); - }); + } } });