summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-03-20 14:19:39 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-03-20 14:19:39 +0100
commit734ebc13356c12b5db4b64e3ad2d3fc3e1b9eb72 (patch)
treeec63d01c122f0d4652f889738f1554fc67ecbc58 /addons/web/static/src/js
parent1d96e4dc847b5dd447bba376929b3acc94cb5669 (diff)
[fix] problem with groups and labels
bzr revid: nicolas.vanhoren@openerp.com-20120320131939-vxt6wia15gt3suxo
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/view_form.js18
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;