From 7cbb2c3084973c1923031f26f555c2aad634935d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 31 May 2011 15:38:17 +0200 Subject: [PATCH] [imp] made o2m work bzr revid: nicolas.vanhoren@openerp.com-20110531133817-vps6mfgsju1wadni --- addons/base/static/src/js/form.js | 34 ++++++++----------------------- addons/base/static/src/js/list.js | 4 ++++ 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 864234f4b7f..d54d5a27adf 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -988,17 +988,6 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } }); -openerp.base.form.FieldOne2ManyDatasSet = openerp.base.DataSetStatic.extend({ - /*start: function() { - }, - write: function (id, data, callback) { - this._super(id, data, callback); - }, - unlink: function() { - this.notification.notify('Unlinking o2m ' + this.ids); - }*/ -}); - openerp.base.form.FieldOne2ManyViewManager = openerp.base.ViewManager.extend({ init: function(session, element_id, dataset, views) { this._super(session, element_id, dataset, views); @@ -1014,9 +1003,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ start: function() { this._super.apply(this, arguments); var views = [ [false,"list"], [false,"form"] ]; - this.dataset = new openerp.base.form.FieldOne2ManyDatasSet(this.session, this.field.relation); - this.dataset.ids = []; - this.dataset.count = 0; + this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation); this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start(); @@ -1034,16 +1021,21 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }, set_value: function(value) { if(value != false) { - this.dataset.ids = value; - this.dataset.count = value.length; + this.dataset.set_ids(value); this.is_setted = true; this.check_load(); } }, + check_load: function() { + if(this.is_started && this.is_setted) { + var view = this.viewmanager.views[this.viewmanager.active_view].controller; + view.reload_content(); + } + }, get_value: function(value) { //TODO return []; - }, + } /*update_dom: function() { this._super.apply(this, arguments); this.$element.toggleClass('disabled', this.readonly); @@ -1051,12 +1043,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }, on_ui_change: function() { },*/ - check_load: function() { - if(this.is_started && this.is_setted) { - var view = this.viewmanager.views[this.viewmanager.active_view].controller; - view.reload_view(); - } - } }); openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ @@ -1077,8 +1063,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ 'selectable': false, 'addable': 'Add' }); - this.list_view.groups.datagroup = ( - new openerp.base.StaticDataGroup(this.dataset)); var self = this; this.list_view.m2m_field = this; this.list_view.start(); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 2fd4aff2e1c..341b5795e60 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -55,6 +55,10 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.flags = this.view_manager.action.flags; this.set_groups(new openerp.base.ListView.Groups(this)); + + if (this.dataset instanceof openerp.base.DataSetStatic) { + this.groups.datagroup = new openerp.base.StaticDataGroup(this.dataset); + } }, /** * Set a custom Group construct as the root of the List View.