summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_form.js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-03-26 17:14:37 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-03-26 17:14:37 +0200
commitd53cfb001b4ad27128ebb68691504cb3e15ebba5 (patch)
tree2955c9224ca2c56d93c437992bd6dc3265c76ff2 /addons/web/static/src/js/view_form.js
parent6e2c8c51dc84c96c35876d3d0e7d37f64a35d966 (diff)
[imp] changed the way fields are instanciated
bzr revid: nicolas.vanhoren@openerp.com-20120326151437-vk5uwzi0rmu084km
Diffstat (limited to 'addons/web/static/src/js/view_form.js')
-rw-r--r--addons/web/static/src/js/view_form.js12
1 files 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;
}
});