From 130e4411335e46f832d129f5ab58424f20cc555b Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 12 Oct 2011 14:49:23 +0200 Subject: [PATCH] [fix] fixed rare problem in the o2m when we try to get its value before it has finished refreshing bzr revid: nicolas.vanhoren@openerp.com-20111012124923-zka6mskg56iha5wc --- addons/web/static/src/js/view_form.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index ebc895df673..c8fef313854 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1937,9 +1937,10 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({ if (this.dataset.index === null && this.dataset.ids.length >= 1) { this.dataset.index = 0; } - this.form_last_update.then(function() { - this.form_last_update = view.do_show(); - }); + var act = function() { + return view.do_show(); + } + this.form_last_update = this.form_last_update.pipe(act, act);; } else if (self.viewmanager.active_view === "graph") { view.do_search(this.build_domain(), this.dataset.get_context(), []); } @@ -2007,7 +2008,8 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({ var self = this; if (!this.dataset) return []; - this.save_form_view(); + if (!this.form_last_update.isResolved() && !this.form_last_update.isRejected()) + this.save_form_view(); var val = this.dataset.delete_all ? [commands.delete_all()] : []; val = val.concat(_.map(this.dataset.ids, function(id) { var alter_order = _.detect(self.dataset.to_create, function(x) {return x.id === id;});