diff --git a/addons/web/static/src/js/views/kanban/kanban_controller.js b/addons/web/static/src/js/views/kanban/kanban_controller.js index ab0f4cb6d07..023e013301e 100644 --- a/addons/web/static/src/js/views/kanban/kanban_controller.js +++ b/addons/web/static/src/js/views/kanban/kanban_controller.js @@ -182,12 +182,7 @@ var KanbanController = BasicController.extend({ var self = this; var active_value = !event.data.archive; var column = event.target; - var record_ids = []; - _.each(column.records, function (kanban_record) { - if (kanban_record.record.active.value !== active_value) { - record_ids.push(kanban_record.db_id); - } - }); + var record_ids = _.pluck(column.records, 'db_id'); if (record_ids.length) { this.model .toggleActive(record_ids, active_value, column.db_id) diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 951afc8e112..24557f2b96d 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -1119,6 +1119,43 @@ QUnit.module('Views', { kanban.destroy(); }); + QUnit.test('archive kanban column, when active field is not in the view', function (assert) { + assert.expect(3); + + this.data.partner.fields.active = {string: 'Active', type: 'char', default: true}; + + var writeOnActive; + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: '' + + '' + + '' + + '
' + + '
' + + '
', + groupBy: ['product_id'], + mockRPC: function (route, args) { + if (args.method === 'write' && 'active' in args.args[1]) { + writeOnActive = true; + } + return this._super.apply(this, arguments); + }, + }); + + var $first_column = kanban.$('.o_kanban_group:first()'); + assert.strictEqual($first_column.find('.o_kanban_record').length, 2, + "there should be 2 partners in first column"); + $first_column.find('.o_column_archive').click(); + assert.ok(writeOnActive, "should write on the active field"); + assert.strictEqual($first_column.find('.o_kanban_record').length, 0, + "there should not be partners anymore"); + + kanban.destroy(); + + }); + }); });