diff --git a/addons/web/static/src/js/views/kanban/kanban_model.js b/addons/web/static/src/js/views/kanban/kanban_model.js index df6172f0d8b..0b0ec09ddf4 100644 --- a/addons/web/static/src/js/views/kanban/kanban_model.js +++ b/addons/web/static/src/js/views/kanban/kanban_model.js @@ -73,7 +73,6 @@ var KanbanModel = BasicModel.extend({ domain: parent.domain.concat([[groupBy,"=",result[0]]]), fields: parent.fields, fieldsInfo: parent.fieldsInfo, - groupedBy: parent.groupedBy, isOpen: true, limit: parent.limit, parentID: parent.id, diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 00625e1e30c..daa68c6c638 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -1947,6 +1947,62 @@ QUnit.module('Views', { kanban.destroy(); }); + QUnit.test('archive new kanban column', function (assert) { + assert.expect(15); + + this.data.partner.fields.active = {string: 'Active', type: 'char', default: true}; + + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: '' + + '' + + '' + + '
' + + '
' + + '
', + groupBy: ['product_id'], + mockRPC: function (route) { + assert.step(route); + return this._super.apply(this, arguments); + }, + }); + var rpcs = ['/web/dataset/call_kw/partner/read_group', '/web/dataset/search_read', '/web/dataset/search_read']; + assert.strictEqual(kanban.$('.o_kanban_group').length, 2, + "there should be 2 columns"); + + // create a column + kanban.$('.o_column_quick_create').click(); + kanban.$('.o_column_quick_create input').val('new colum'); + kanban.$('.o_column_quick_create button.o_kanban_add').click(); + rpcs.push('/web/dataset/call_kw/product/name_create'); + assert.verifySteps(rpcs); + + // add a record inside + kanban.$('.o_kanban_group:eq(2) .o_kanban_quick_add i').click(); + var $quickCreate = kanban.$('.o_kanban_group:eq(2) .o_kanban_quick_create'); + $quickCreate.find('input').val('new record'); + $quickCreate.find('button.o_kanban_add').click(); + assert.strictEqual(kanban.$('.o_kanban_group').length, 3, + "there should be 3 columns"); + rpcs.push('/web/dataset/call_kw/partner/name_create'); + rpcs.push('/web/dataset/call_kw/partner/read'); + assert.verifySteps(rpcs); + + var $newColumn = kanban.$('.o_kanban_group:eq(2)'); + assert.strictEqual($newColumn.find('.o_kanban_record').length, 1, + "there should be 1 record in the new column"); + $newColumn.find('.o_column_archive').click(); + assert.strictEqual($newColumn.find('.o_kanban_record').length, 0, + "there should not be partners anymore"); + rpcs.push('/web/dataset/call_kw/partner/write'); + rpcs.push('/web/dataset/search_read'); + assert.verifySteps(rpcs, "a search_read should be done after archiving the records"); + + kanban.destroy(); + }); + QUnit.test('load more records in column', function (assert) { assert.expect(12);