From 7dbf6d2154412eabe35b1305e4ee59c8037652f3 Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Fri, 29 Sep 2017 10:55:20 +0200 Subject: [PATCH] [FIX] web: allow creating new kanban columns with progressbar Before this fix, trying to create a column in a kanban view where there were progressbars was opening a traceback. This was because the newly create column is made from data which are guessed in the client (no RPC is done), so this guess had to be adapted to progressbars. --- .../src/js/views/kanban/kanban_model.js | 5 +++ addons/web/static/tests/views/kanban_tests.js | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+) 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 ca4924b6c65..c59a45e6f0f 100644 --- a/addons/web/static/src/js/views/kanban/kanban_model.js +++ b/addons/web/static/src/js/views/kanban/kanban_model.js @@ -79,6 +79,11 @@ var KanbanModel = BasicModel.extend({ value: result, viewType: parent.viewType, }); + if (parent.progressBar) { + newGroup.progressBarValues = _.extend({ + counts: {}, + }, parent.progressBar); + } // newGroup.is_open = true; parent.data.push(newGroup.id); diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index e0d2f72e05e..2ad0d5e6324 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -2024,6 +2024,40 @@ QUnit.module('Views', { kanban.destroy(); }); + QUnit.test('column progressbars: creating a new column should create a new progressbar', function (assert) { + assert.expect(1); + + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: + '' + + '' + + '' + + '' + + '
' + + '' + + '
' + + '
' + + '
', + groupBy: ['product_id'], + }); + + var nbProgressBars = kanban.$('.o_kanban_counter').length; + + // Create a new column: this should create an empty progressbar + var $columnQuickCreate = kanban.$('.o_column_quick_create'); + $columnQuickCreate.click(); + $columnQuickCreate.find('input').val('test'); + $columnQuickCreate.find('.btn-primary').click(); + + assert.strictEqual(kanban.$('.o_kanban_counter').length, nbProgressBars + 1, + "a new column with a new column progressbar should have been created"); + + kanban.destroy(); + }); + QUnit.test('keep adding quickcreate in first column after a record from this column was moved', function (assert) { assert.expect(2);