From e255b79f8abd0b6ab47765cacf2044900256e2bb Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Thu, 7 Apr 2011 00:18:04 +0200 Subject: [PATCH] form to use _.keys(fields) bzr revid: al@openerp.com-20110406221804-fd3pyiv3o00cioi6 --- addons/base/static/src/js/data.js | 6 +++--- addons/base/static/src/js/form.js | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 6c82d79e00f..4dbfb47dd28 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -109,11 +109,11 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. }); openerp.base.DataSetStatic = openerp.base.DataSet.extend({ - init: function(session, model, ids) { + init: function(session, model) { this._super(session, model); // all local records - this.ids = ids; - this.count = ids.length; + this.ids = []; + this.count = 0; }, read_slice: function (fields, offset, limit, callback) { this.read_ids(this.ids.slice(offset, offset + limit)); diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 691405ef5ec..b47e658f016 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -57,7 +57,9 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base } }, do_show: function () { - this.dataset.read_index(this.fields_view.fields, this.on_record_loaded); + // this should not append as start return a deferred resolved when fields_view is known + if(this.fields_view && this.fields_view.fields) + this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded); this.$element.show(); }, do_hide: function () { @@ -101,7 +103,7 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base this.dataset.index = this.dataset.ids.length - 1; break; } - this.dataset.read_index(this.fields_view.fields, this.on_record_loaded); + this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded); }, do_update_pager: function() { var $pager = this.$element.find('div.oe_form_pager'); @@ -675,7 +677,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } }); -openerp.base.form.FieldOne2ManyDatasSet = openerp.base.DataSet.extend({ +openerp.base.form.FieldOne2ManyDatasSet = openerp.base.DataSetStatic.extend({ start: function() { }, write: function (id, data, callback) { @@ -703,7 +705,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ start: function() { this._super.apply(this, arguments); this.log("o2m.start"); - var views = [ [false,"list"], ]; + var views = [ [false,"list"], [false,"form"] ]; this.dataset = new openerp.base.form.FieldOne2ManyDatasSet(this.session, this.field.relation); this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start();