From d53cfb001b4ad27128ebb68691504cb3e15ebba5 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 26 Mar 2012 17:14:37 +0200 Subject: [PATCH] [imp] changed the way fields are instanciated bzr revid: nicolas.vanhoren@openerp.com-20120326151437-vk5uwzi0rmu084km --- addons/web/static/src/js/view_form.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index fb03ff7646a..b362359ae09 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -756,15 +756,15 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({ var xml = openerp.web.json_node_to_xml(this.fvg.arch); this.$form = $(xml); + this.to_init = []; this.process(this.$form); this.$form.appendTo(this.$element); // OpenERP views spec : // - @width is obsolete ? - this.$element.find('field, button').each(function() { - var $elem = $(this), - key = $elem.attr('widget') || $elem[0].tagName.toLowerCase(); + _.each(this.to_init, function($elem) { + var key = $elem.attr('widget') || $elem[0].tagName.toLowerCase(); if (self.view.registry.contains(key)) { var obj = self.view.registry.get_object(key); var w = new (obj)(self.view, openerp.web.xml_to_json($elem[0])); @@ -789,7 +789,6 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({ }); } this.$element.toggleClass('oe_layout_debugging'); - }, process: function($tag) { var self = this; @@ -866,6 +865,7 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({ 'string' : field_string, 'help' : field_help }); + this.to_init.push($field); return $field; }, process_group: function($group) { @@ -991,6 +991,10 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({ var $new_label = $(QWeb.render('FormRenderingLabel', dict)); $label.before($new_label).remove(); return $new_label; + }, + process_button: function($button) { + this.to_init.push($button); + return $button; } });