diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 71d5298a68b..4a09865a0f8 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -340,3 +340,6 @@ border-left: 1px solid #666666; padding: 0 4px 0 4px; } +.openerp2 .oe_form_label_help, .openerp2 .oe_form_label { + white-space: nowrap; +} diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 246b621ba68..a5ad8fd7ad1 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -334,7 +334,9 @@ $colour4: #8a89ba .oe_vertical_separator border-left: 1px solid #666 padding: 0 4px 0 4px - // }}} + .oe_form_label_help, .oe_form_label + white-space: nowrap + // }}} .openerp // Transitional overrides for old styles {{{ diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index b4287180452..b7ca275a1e7 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -885,7 +885,17 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ $separator.before($new_separator).remove(); }, process_label: function($label, $form) { - var $new_label = $(QWeb.render('FormRenderingLabel', $label.getAttributes())); + var dict = $label.getAttributes(); + var align = parseFloat(dict.align); + if (isNaN(align) || align === 1) { + align = 'right'; + } else if (align === 0) { + align = 'left'; + } else { + align = 'center'; + } + dict.align = align; + var $new_label = $(QWeb.render('FormRenderingLabel', dict)); $label.before($new_label).remove(); } }); @@ -1343,6 +1353,16 @@ openerp.web.form.AbstractField = openerp.web.form.Widget.extend(/** @lends opene this.view.on("change:readonly", this, test_effective_readonly); this.view.on("change:force_readonly", this, test_effective_readonly); _.bind(test_effective_readonly, this)(); + + if (this.view) { + this.$label = this.view.$element.find('label[for="' + this.name + '"]'); + if (this.$label.length) { + this.id_for_label = _.uniqueId(['field', this.type, this.name, ''].join('_')); + this.$label.attr('for', this.id_for_label); + } else { + this.$label; + } + } }, start: function() { this._super.apply(this, arguments); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 31dc699e4e6..58d7b8c95c3 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -869,7 +869,7 @@