From 36d85bed82a7321efe6d33ea22a37e997fa4f491 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 22 Jun 2011 17:08:38 +0200 Subject: [PATCH] [imp] corrected some behavior about suppressions in datasets bzr revid: nicolas.vanhoren@openerp.com-20110622150838-6ju63f7k0njkocru --- addons/base/static/src/js/form.js | 38 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 53538faae41..7787a807c01 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1305,7 +1305,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this.dataset = new openerp.base.form.One2ManyDataset(this.session, this.field.relation); this.dataset.on_change.add_last(function() { self.on_ui_change(); - self.reload_current_view(); }); var modes = this.node.attrs.mode; @@ -1377,6 +1376,23 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.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 + }); + pop.on_select_elements.add(function(element_ids) { + var ids = self.o2m.dataset.ids; + _.each(element_ids, function(x) {if (!_.include(ids, x)) ids.push(x);}); + self.o2m.dataset.set_ids(ids); + self.o2m.reload_current_view(); + }); + } +}); + openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ virtual_id_prefix: "one2many_v_id_", virtual_id_regex: /one2many_v_id_.*/, @@ -1484,24 +1500,6 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.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 - }); - pop.on_select_elements.add(function(element_ids) { - var ids = self.o2m.dataset.ids; - _.each(element_ids, function(x) {if (!_.include(ids, x)) ids.push(x);}); - self.o2m.dataset.set_ids(ids); - self.o2m.on_ui_change(); - self.o2m.reload_current_view(); - }); - } -}); - openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); @@ -1517,7 +1515,7 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this.dataset = new openerp.base.DataSetStatic( this.session, this.field.relation); - this.dataset.on_unlink.add_last(function(ids) { + this.dataset.on_change.add_last(function(ids) { self.on_ui_change(); });