diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 1d7d2fa8c7a..d84b19a867e 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -2315,7 +2315,11 @@ .openerp .oe_form_field_radio.oe_horizontal { white-space: nowrap; } -.openerp .oe_form_field_radio.oe_required .oe_radio_input { +.openerp .oe_form_field_radio:not(.oe_readonly) .oe_radio_read_only, +.openerp .oe_form_field_radio.oe_readonly .oe_radio_edit_only { + display: none; +} +.openerp .oe_form_field_radio.oe_form_required .oe_radio_input { border: 1px solid transparent; display: inline-block; height: 12px; @@ -2324,7 +2328,7 @@ border-radius: 10px; margin: 1px 0; } -.openerp .oe_form_field_radio.oe_required.oe_form_invalid .oe_radio_input { +.openerp .oe_form_field_radio.oe_form_required.oe_form_invalid .oe_radio_input { border-color: red; } .openerp .oe_form_field_radio.oe_horizontal label, diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 004204f73c5..df157249d83 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -490,7 +490,13 @@ $sheet-padding: 16px &.oe_vertical label margin-left: 4px - &.oe_required + &:not(.oe_readonly) + .oe_radio_read_only + display: none + &.oe_readonly + .oe_radio_read_only + display: none + &.oe_form_required .oe_radio_input border: 2px solid transparent display: inline-block diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 971e2b96d6e..4f036722ba7 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2885,8 +2885,7 @@ instance.web.form.FieldRadio = instance.web.form.AbstractField.extend(instance.w return value instanceof Array ? value[0] : value; }, render_value: function () { - this.$(".oe_radio_edit_only, .oe_radio_read_only").hide(); - this.$(this.get('effective_readonly') ? ".oe_radio_read_only" : ".oe_radio_edit_only").show(); + this.$el.toggleClass("oe_readonly", this.get('effective_readonly')); this.$("input[checked]").attr("checked", false); if (this.get_value()) { this.$("input[value='" + this.get_value() + "']").attr("checked", true); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 4a5a7527e28..d501e76f875 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1112,7 +1112,7 @@ - +