From feb4a8986d3aed2643832a8094caf9bf26fc69b6 Mon Sep 17 00:00:00 2001 From: Martin Geubelle Date: Thu, 11 May 2017 18:06:25 +0200 Subject: [PATCH] [FIX] web: Kanban: correctly add the created record in group The kanban group expects to have local ids in its data and not the whole datapoint. This was causing a traceback when adding a new column after adding a record. --- .../src/js/views/kanban/kanban_model.js | 2 +- addons/web/static/tests/views/kanban_tests.js | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) 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 bdf58858b02..d73e5fad3e7 100644 --- a/addons/web/static/src/js/views/kanban/kanban_model.js +++ b/addons/web/static/src/js/views/kanban/kanban_model.js @@ -30,7 +30,7 @@ var KanbanModel = BasicModel.extend({ fieldsInfo: group.fieldsInfo, viewType: group.viewType, }); - group.data.unshift(new_record); + group.data.unshift(new_record.id); group.count++; return this._fetchRecord(new_record) // .then(this._fetch_relational_data.bind(this)) diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index debb65b60ff..6529a368363 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -606,7 +606,7 @@ QUnit.module('Views', { assert.ok(true, "should call name_create"); } return this._super(route, args); - } + }, }); assert.strictEqual(kanban.$('.o_column_quick_create').length, 1, "should have a quick create column"); assert.notOk(kanban.$('.o_column_quick_create input').is(':visible'), @@ -648,6 +648,37 @@ QUnit.module('Views', { kanban.destroy(); }); + QUnit.test('quick create record & column in grouped on m2o', function (assert) { + assert.expect(2); + + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: '' + + '' + + '' + + '
' + + '
' + + '
', + groupBy: ['product_id'], + }); + kanban.$('.o_kanban_group:first .o_kanban_quick_add').click(); + var $quickCreate = kanban.$('.o_kanban_quick_create'); + $quickCreate.find('input').val('new partner'); + $quickCreate.find('button.o_kanban_add').click(); + assert.strictEqual(this.data.partner.records.length, 5, + "should have created a partner"); + + kanban.$('.o_column_quick_create').click(); + kanban.$('.o_column_quick_create input').val('new column'); + kanban.$('.o_column_quick_create button.o_kanban_add').click(); + + assert.strictEqual(kanban.$('.o_kanban_group:last span:contains(new column)').length, 1, + "the last column should be the newly created one"); + kanban.destroy(); + }), + QUnit.test('delete a column in grouped on m2o', function (assert) { assert.expect(25);