diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index 751c16b3a23..325e0ceb8e8 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -465,7 +465,10 @@ var FieldMany2One = AbstractField.extend({
* @private
*/
_renderReadonly: function () {
- var value = _.escape((this.m2o_value || "").trim()).split("\n").join("
");
+ var escapedValue = _.escape((this.m2o_value || "").trim());
+ var value = escapedValue.split('\n').map(function (line) {
+ return '' + line + '';
+ }).join('
');
this.$el.html(value);
if (!this.noOpen && this.value) {
this.$el.attr('href', _.str.sprintf('#id=%s&model=%s', this.value.res_id, this.field.relation));
diff --git a/addons/web/static/src/scss/form_view.scss b/addons/web/static/src/scss/form_view.scss
index 8bcaba31ee3..8d4f56624ca 100644
--- a/addons/web/static/src/scss/form_view.scss
+++ b/addons/web/static/src/scss/form_view.scss
@@ -81,10 +81,12 @@
.o_form_uri {
display: inline-block;
- color: $link-color;
-
- &:hover {
- color: darken($link-color, 15%);
+ color: $o-main-text-color;
+ > span:first-child {
+ color: $link-color;
+ &:hover {
+ color: darken($link-color, 15%);
+ }
}
}
diff --git a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
index e28b8ef1a47..ed38fbbaf03 100644
--- a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
+++ b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
@@ -356,7 +356,7 @@ QUnit.module('fields', {}, function () {
res_id: 1,
});
- assert.strictEqual($('a.o_form_uri').html(), 'aaa
Street
City ZIP',
+ assert.strictEqual(form.$('a.o_form_uri').html(), 'aaa
Street
City ZIP',
"input should have a multi-line content in readonly due to show_address");
await testUtils.form.clickEdit(form);
assert.containsOnce(form, 'button.o_external_button:visible',