From 25b101f15bb3da914dd9fa2ca804a542e2303e7b Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Mon, 8 Jan 2018 15:57:33 +0100 Subject: [FIX] web: Kanban: quick create several records in a row Before this rev., when quick creating a record in a grouped kanban view, the quick create widget wasn't automatically re-opened, which didn't allow the user to quickly create several records in a row (without clicking each time on the '+'). This desired behavior had been broken by rev. 1d34e26, which aimed to properly reload the kanban column when a record was created (e.g. column counter, progress bar...). --- addons/web/static/src/js/views/kanban/kanban_controller.js | 12 +++++++----- addons/web/static/src/js/views/kanban/kanban_renderer.js | 12 ++++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'addons/web/static/src/js') 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 2f6f566649e..7b12e6f034c 100644 --- a/addons/web/static/src/js/views/kanban/kanban_controller.js +++ b/addons/web/static/src/js/views/kanban/kanban_controller.js @@ -355,11 +355,13 @@ var KanbanController = BasicController.extend({ self._updateEnv(); var columnState = self.model.getColumn(db_id); - return self.renderer.updateColumn(columnState.id, columnState).then(function () { - if (event.data.openRecord) { - self.trigger_up('open_record', {id: db_id, mode: 'edit'}); - } - }); + return self.renderer + .updateColumn(columnState.id, columnState, {openQuickCreate: true}) + .then(function () { + if (event.data.openRecord) { + self.trigger_up('open_record', {id: db_id, mode: 'edit'}); + } + }); }); } }, diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index 0f91fb2ae14..e4e37095afa 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -141,15 +141,23 @@ var KanbanRenderer = BasicRenderer.extend({ * * @param {string} localID the column id * @param {Object} columnState + * @param {Object} [options] + * @param {boolean} [options.openQuickCreate] if true, directly opens the + * QuickCreate widget in the updated column * * @returns {Deferred} */ - updateColumn: function (localID, columnState) { + updateColumn: function (localID, columnState, options) { var newColumn = new KanbanColumn(this, columnState, this.columnOptions, this.recordOptions); var index = _.findIndex(this.widgets, {db_id: localID}); var column = this.widgets[index]; this.widgets[index] = newColumn; - return newColumn.insertAfter(column.$el).then(column.destroy.bind(column)); + return newColumn.insertAfter(column.$el).then(function () { + if (options && options.openQuickCreate) { + newColumn.addQuickCreate(); + } + column.destroy(); + }); }, /** * Updates a given record with its new state. -- cgit v1.2.3