From a09462b7fcdfda056e0b3f43dc3ff306b272aa6a Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Sat, 30 Sep 2017 17:27:04 +0200 Subject: [PATCH] [FIX] web: allow updating a newly created kanban record When using quick create to create a kanban record, if this record was then updated thanks to a field widget, the view crashed. This was because it tried to update the whole column but the newly created record was not properly attached to it in the model. Thanks to @sja-odoo for the test. Note: to backport (partially) --- .../src/js/views/kanban/kanban_model.js | 1 + addons/web/static/tests/views/kanban_tests.js | 38 +++++++++++++++++++ 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 c59a45e6f0f..aba59555e93 100644 --- a/addons/web/static/src/js/views/kanban/kanban_model.js +++ b/addons/web/static/src/js/views/kanban/kanban_model.js @@ -29,6 +29,7 @@ var KanbanModel = BasicModel.extend({ fields: group.fields, fieldsInfo: group.fieldsInfo, viewType: group.viewType, + parentID: groupID, }); group.data.unshift(new_record.id); group.res_ids.unshift(resId); diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index ba5fce0f898..9ba1f4224d7 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -342,6 +342,44 @@ QUnit.module('Views', { kanban.destroy(); }); + QUnit.test('quick create and change state in grouped mode', function (assert) { + assert.expect(1); + + this.data.partner.fields.kanban_state = { + string: "Kanban State", + type: "selection", + selection: [["normal", "Grey"], ["done", "Green"], ["blocked", "Red"]], + }; + + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: '' + + '' + + '
' + + '
' + + '' + + '
' + + '
' + + '
', + groupBy: ['foo'], + }); + + // Quick create kanban record + kanban.$('.o_kanban_header .o_kanban_quick_add i').first().click(); + var $quickAdd = kanban.$('.o_kanban_quick_create'); + $quickAdd.find('.o_input').val('Test'); + $quickAdd.find('.o_kanban_add').click(); + + // Select state in kanban + kanban.$('.o_status').first().click(); + kanban.$('.o_selection ul:first li:first').click(); + assert.ok(kanban.$('.o_status').first().hasClass('o_status_green'), + "Kanban state should be done (Green)"); + kanban.destroy(); + }); + QUnit.test('quick create in grouped mode', function (assert) { assert.expect(8);