From e93a5cec4835b041fdef7e0e7ffbf73ef3d2566e Mon Sep 17 00:00:00 2001 From: Mohammed Shekha Date: Thu, 21 Dec 2017 19:11:30 +0530 Subject: [PATCH] [FIX] web: archive records in a new Kanban column Create a new column in Project, add a record and then hit 'Archive Records' : a traceback occurs. When creating the new column, the `groupedBy` attribute on the datapoint is set according to the parent list datapoint, which makes no sense as the records are not grouped inside the column. The mentioned attribute is now removed as the records cannot be grouped inside the column. --- .../src/js/views/kanban/kanban_model.js | 1 - addons/web/static/tests/views/kanban_tests.js | 56 +++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) 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);