diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index 0bbc7aa2698..cd9572b0fc5 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -138,10 +138,10 @@ var KanbanRenderer = BasicRenderer.extend({ * @returns {Deferred} */ updateColumn: function (localID, columnState) { - var column = _.findWhere(this.widgets, {db_id: localID}); - this.widgets.splice(_.indexOf(this.widgets, column), 1); // remove column from widgets' list var newColumn = new KanbanColumn(this, columnState, this.columnOptions, this.recordOptions); - this.widgets.push(newColumn); + var index = _.findIndex(this.widgets, {db_id: localID}); + var column = this.widgets[index]; + this.widgets[index] = newColumn; return newColumn.insertAfter(column.$el).then(column.destroy.bind(column)); }, /** diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 72e3aedd1ef..64decd5f657 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -1824,6 +1824,45 @@ QUnit.module('Views', { "the add button should still be visible"); kanban.destroy(); }); + + QUnit.test('keep adding quickcreate in first column after a record from this column was moved', function (assert) { + assert.expect(2); + + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: + '' + + '' + + '' + + '
' + + '
' + + '
', + groupBy: ['int_field'], + mockRPC: function (route, args) { + if (route === '/web/dataset/resequence') { + return $.when(true); + } + return this._super(route, args); + }, + }); + + var $quickCreateGroup; + var $groups; + _quickCreateAndTest(); + testUtils.dragAndDrop($groups.first().find('.o_kanban_record:first'), $groups.eq(1)); + _quickCreateAndTest(); + kanban.destroy(); + + function _quickCreateAndTest() { + kanban.$buttons.find('.o-kanban-button-new').click(); + $quickCreateGroup = kanban.$('.o_kanban_quick_create').closest('.o_kanban_group'); + $groups = kanban.$('.o_kanban_group'); + assert.strictEqual($quickCreateGroup[0], $groups[0], + "quick create should have been added in the first column"); + } + }); }); });