diff --git a/addons/web/static/src/legacy/js/fields/relational_fields.js b/addons/web/static/src/legacy/js/fields/relational_fields.js index 0d9999a1594..1fd63768b23 100644 --- a/addons/web/static/src/legacy/js/fields/relational_fields.js +++ b/addons/web/static/src/legacy/js/fields/relational_fields.js @@ -88,10 +88,14 @@ var FieldMany2One = AbstractField.extend({ }), events: _.extend({}, AbstractField.prototype.events, { 'click input': '_onInputClick', + 'click': '_onLinkClick', 'focusout input': '_onInputFocusout', 'keyup input': '_onInputKeyup', 'click .o_external_button': '_onExternalButtonClick', }), + quickEditExclusion: [ + '.o_form_uri', + ], AUTOCOMPLETE_DELAY: 200, SEARCH_MORE_LIMIT: 320, isQuickEditable: true, @@ -749,13 +753,11 @@ var FieldMany2One = AbstractField.extend({ * @override * @param {MouseEvent} event */ - _onClick: function (event) { + _onLinkClick: function (event) { var self = this; if (this.mode === 'readonly') { event.preventDefault(); - if (this.noOpen) { - this._super(...arguments); - } else { + if (!this.noOpen) { event.stopPropagation(); this._rpc({ model: this.field.relation, diff --git a/addons/web/static/tests/legacy/fields/relational_fields/field_many2one_tests.js b/addons/web/static/tests/legacy/fields/relational_fields/field_many2one_tests.js index 7f99381c812..8aebca573b2 100644 --- a/addons/web/static/tests/legacy/fields/relational_fields/field_many2one_tests.js +++ b/addons/web/static/tests/legacy/fields/relational_fields/field_many2one_tests.js @@ -10,8 +10,10 @@ var testUtils = require('web.test_utils'); var Widget = require('web.Widget'); const { triggerScroll } = require("@web/../tests/helpers/utils"); +const { legacyExtraNextTick } = require("@web/../tests/helpers/utils"); +const { createWebClient, doAction } = require('@web/../tests/webclient/helpers'); const { browser } = require('@web/core/browser/browser'); -const { patchWithCleanup } = require('@web/../tests/helpers/utils'); +const { patchWithCleanup, getFixture } = require('@web/../tests/helpers/utils'); const cpHelpers = require('@web/../tests/search/helpers'); var createView = testUtils.createView; @@ -3721,6 +3723,71 @@ QUnit.module('fields', {}, function () { form.destroy(); }); + QUnit.test('many2one links form view call', async function (assert) { + assert.expect(5); + + let serverData = {}; + serverData.models = this.data; + serverData.models['turtle'].records[1].product_id = 37; + serverData.views= { + "partner,false,form": '
', + "partner,false,search": '