diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-03-20 14:19:39 +0100 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-03-20 14:19:39 +0100 |
| commit | 734ebc13356c12b5db4b64e3ad2d3fc3e1b9eb72 (patch) | |
| tree | ec63d01c122f0d4652f889738f1554fc67ecbc58 /addons/web/static/src | |
| parent | 1d96e4dc847b5dd447bba376929b3acc94cb5669 (diff) | |
[fix] problem with groups and labels
bzr revid: nicolas.vanhoren@openerp.com-20120320131939-vxt6wia15gt3suxo
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index c03d75f59f8..aba6eaea261 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -797,7 +797,7 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ }); */ }, - process_field: function($field) { + process_field: function($field, no_process_label) { var name = $field.attr('name'), field_orm = this.fvg.fields[name], field_string = $field.attr('string') || field_orm.string || '', @@ -819,7 +819,8 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ 'help' : field_help }); label.insertBefore($field); - this.process_any(label); + if (!no_process_label) + this.process_label(label); if (field_colspan > 1) { $field.attr('colspan', field_colspan - 1); } @@ -833,8 +834,13 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ }, process_group: function($group) { var self = this; + var fields = []; _.each($group.children(), function(el) { - self.process_any($(el)); + var tagname = el.nodeName.toLowerCase(); + if (tagname === "field") { + self.process_field($(el), true); + fields.push(el); + } }); var $new_group = $(QWeb.render('FormRenderingGroup', $group.getAttributes())), $table; @@ -848,6 +854,7 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ cols = parseInt($group.attr('col') || 4, 10), row_cols = cols; + var children = []; $group.children().each(function() { var $child = $(this), colspan = parseInt($child.attr('colspan') || 1, 10), @@ -863,6 +870,7 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ row_cols -= colspan; var $td = $('<td/>').addClass('oe_form_group_cell').attr('colspan', colspan); $tr.append($td.append($child)); + children.push($child[0]); }); $group.before($new_group).remove(); @@ -900,6 +908,10 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ total -= width; }); }); + _.each(children, function(el) { + if (!_.include(fields, el)) + self.process_any($(el)); + }); }, process_notebook: function($notebook) { var self = this; |
