From c8912b68d83d10c2b8bf6a3a56f28bf051b170ec Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 14 Feb 2012 16:20:31 +0100 Subject: [PATCH] [fix] problem with on_changes in the editable lists in o2m bzr revid: nicolas.vanhoren@openerp.com-20120214152031-br1lq6zqx6ycdj7p --- addons/web/static/src/js/data.js | 11 +++++++++-- addons/web/static/src/js/view_form.js | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index cb63079fe2c..38119c63d3a 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -525,7 +525,10 @@ openerp.web.DataSet = openerp.web.OldWidget.extend( /** @lends openerp.web.Data }, size: function () { return this.ids.length; - } + }, + alter_ids: function(n_ids) { + this.ids = n_ids; + }, }); openerp.web.DataSetStatic = openerp.web.DataSet.extend({ init: function(parent, model, context, ids) { @@ -784,7 +787,11 @@ openerp.web.BufferedDataSet = openerp.web.DataSetStatic.extend({ } } return this._super(method, args, callback, error_callback); - } + }, + alter_ids: function(n_ids) { + this._super(n_ids); + this.on_change(); + }, }); openerp.web.BufferedDataSet.virtual_id_regex = /^one2many_v_id_.*$/; diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 7b6ec9c6bd5..ff0ef5e5fea 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -565,10 +565,10 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# } else { this.datarecord.id = r.result; if (!prepend_on_create) { - this.dataset.ids.push(this.datarecord.id); + this.dataset.alter_ids(this.dataset.ids.concat([this.datarecord.id])); this.dataset.index = this.dataset.ids.length - 1; } else { - this.dataset.ids.unshift(this.datarecord.id); + this.dataset.alter_ids([this.datarecord.id].concat(this.dataset.ids)); this.dataset.index = 0; } this.do_update_pager();