diff options
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/web/static/src/js/views/list/list_editable_renderer.js | 2 | ||||
| -rw-r--r-- | addons/web/static/tests/views/list_tests.js | 32 |
2 files changed, 33 insertions, 1 deletions
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 2122e00ed0c..a3c47684991 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 @@ -1817,7 +1817,7 @@ ListRenderer.include({ // ignore clicks if there is a modal, except if the list is in the last // (active) modal - var $modal = $('.modal:last'); + var $modal = $('body > .modal:last'); if ($modal.length) { var $listModal = this.$el.closest('.modal'); if ($modal.prop('id') !== $listModal.prop('id')) { diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js index 8c0348c7e5c..6e142dff2ff 100644 --- a/addons/web/static/tests/views/list_tests.js +++ b/addons/web/static/tests/views/list_tests.js @@ -8245,6 +8245,38 @@ QUnit.module('Views', { form.destroy(); }); + QUnit.test('editable list alongside html field: click out to unselect the row', async function (assert) { + assert.expect(5); + + const form = await createView({ + View: FormView, + model: 'foo', + data: this.data, + arch: ` + <form> + <field name="text" widget="html"/> + <field name="o2m"> + <tree editable="bottom"> + <field name="display_name"/> + </tree> + </field> + </form>`, + }); + + assert.containsNone(form, '.o_data_row'); + + await testUtils.dom.click(form.$('.o_field_x2many_list_row_add > a')); + assert.containsOnce(form, '.o_data_row'); + assert.hasClass(form.$('.o_data_row'), 'o_selected_row'); + + // click outside to unselect the row + await testUtils.dom.click(document.body); + assert.containsOnce(form, '.o_data_row'); + assert.doesNotHaveClass(form.$('.o_data_row'), 'o_selected_row'); + + form.destroy(); + }); + QUnit.test('list grouped by date:month', async function (assert) { assert.expect(1); |
