[imp] changed the way fields are instanciated

bzr revid: nicolas.vanhoren@openerp.com-20120326151437-vk5uwzi0rmu084km
This commit is contained in:
niv-openerp 2012-03-26 17:14:37 +02:00
parent 6e2c8c51dc
commit d53cfb001b
1 changed files with 8 additions and 4 deletions

View File

@ -756,15 +756,15 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({
var xml = openerp.web.json_node_to_xml(this.fvg.arch); var xml = openerp.web.json_node_to_xml(this.fvg.arch);
this.$form = $(xml); this.$form = $(xml);
this.to_init = [];
this.process(this.$form); this.process(this.$form);
this.$form.appendTo(this.$element); this.$form.appendTo(this.$element);
// OpenERP views spec : // OpenERP views spec :
// - @width is obsolete ? // - @width is obsolete ?
this.$element.find('field, button').each(function() { _.each(this.to_init, function($elem) {
var $elem = $(this), var key = $elem.attr('widget') || $elem[0].tagName.toLowerCase();
key = $elem.attr('widget') || $elem[0].tagName.toLowerCase();
if (self.view.registry.contains(key)) { if (self.view.registry.contains(key)) {
var obj = self.view.registry.get_object(key); var obj = self.view.registry.get_object(key);
var w = new (obj)(self.view, openerp.web.xml_to_json($elem[0])); 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'); this.$element.toggleClass('oe_layout_debugging');
}, },
process: function($tag) { process: function($tag) {
var self = this; var self = this;
@ -866,6 +865,7 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({
'string' : field_string, 'string' : field_string,
'help' : field_help 'help' : field_help
}); });
this.to_init.push($field);
return $field; return $field;
}, },
process_group: function($group) { process_group: function($group) {
@ -991,6 +991,10 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({
var $new_label = $(QWeb.render('FormRenderingLabel', dict)); var $new_label = $(QWeb.render('FormRenderingLabel', dict));
$label.before($new_label).remove(); $label.before($new_label).remove();
return $new_label; return $new_label;
},
process_button: function($button) {
this.to_init.push($button);
return $button;
} }
}); });