From 711a10162a6b60b51e34896d838035bcabe7491a Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Wed, 28 Aug 2019 11:19:03 +0000 Subject: [PATCH] [FIX] web: enter edition editable list with MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Let's assume an editable list view with a node in its arch. Before this rev., when clicking on a field cell positionned *after* the widget, the field next to the clicked one was focused. closes odoo/odoo#36176 Signed-off-by: Géry Debongnie (ged) --- .../js/views/list/list_editable_renderer.js | 2 +- .../static/src/js/views/list/list_renderer.js | 1 + addons/web/static/tests/views/list_tests.js | 29 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/views/list/list_editable_renderer.js b/addons/web/static/src/js/views/list/list_editable_renderer.js index 987b7d84b6d..63ff20aedb1 100644 --- a/addons/web/static/src/js/views/list/list_editable_renderer.js +++ b/addons/web/static/src/js/views/list/list_editable_renderer.js @@ -1268,7 +1268,7 @@ ListRenderer.include({ var $td = $(event.currentTarget); var $tr = $td.parent(); var rowIndex = $tr.prop('rowIndex') - 1; - var fieldIndex = Math.max($tr.find('.o_data_cell').not('.o_list_button').index($td), 0); + var fieldIndex = Math.max($tr.find('.o_field_cell').index($td), 0); this._selectCell(rowIndex, fieldIndex, {event: event}); }, /** diff --git a/addons/web/static/src/js/views/list/list_renderer.js b/addons/web/static/src/js/views/list/list_renderer.js index 838705c6ffd..31300ae53d1 100644 --- a/addons/web/static/src/js/views/list/list_renderer.js +++ b/addons/web/static/src/js/views/list/list_renderer.js @@ -385,6 +385,7 @@ var ListRenderer = BasicRenderer.extend({ if (node.tag === 'button') { tdClassName += ' o_list_button'; } else if (node.tag === 'field') { + tdClassName += ' o_field_cell'; var typeClass = FIELD_CLASSES[this.state.fields[node.attrs.name].type]; if (typeClass) { tdClassName += (' ' + typeClass); diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js index 838a626fb53..0870095d9f1 100644 --- a/addons/web/static/tests/views/list_tests.js +++ b/addons/web/static/tests/views/list_tests.js @@ -7028,6 +7028,35 @@ QUnit.module('Views', { list.destroy(); }); + + QUnit.test('enter edition in editable list with ', async function (assert) { + assert.expect(1); + + var MyWidget = Widget.extend({ + start: function () { + this.$el.html(''); + }, + }); + widgetRegistry.add('some_widget', MyWidget); + + var list = await createView({ + View: ListView, + model: 'foo', + data: this.data, + arch: '' + + '' + + '' + + '' + + '', + }); + + // click on int_field cell of first row + await testUtils.dom.click(list.$('.o_data_row:first .o_data_cell:nth(1)')); + assert.strictEqual(document.activeElement.name, "int_field"); + + list.destroy(); + delete widgetRegistry.map.test; + }); }); });