diff options
| author | Aaron Bohy <aab@odoo.com> | 2018-10-11 14:39:43 +0200 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2018-10-19 13:15:30 +0200 |
| commit | 120709f807bef910ecf29d058a603da4dbcd8d82 (patch) | |
| tree | b81e7c74c6945beb8341d1380c8bb6be483d7278 /addons/web/static/src/js | |
| parent | f2ada1560e426980b619fc8bad982037a76f2307 (diff) | |
[FIX] web: kanban quick create with correct default values
When a kanban view is grouped by a char or a boolean field, and the
quick create option is enabled, the correct default value for the
grouped field (i.e. the value of the column in which the record is
created) should be given (either in the context if that field isn't
in the quick create form view, or as a default value in that form
view otherwise).
Before this rev., it wasn't the case, as it was only working when
grouped by a many2one field.
Task 1878254
Diffstat (limited to 'addons/web/static/src/js')
3 files changed, 7 insertions, 4 deletions
diff --git a/addons/web/static/src/js/views/kanban/kanban_column.js b/addons/web/static/src/js/views/kanban/kanban_column.js index e66601816c2..15f37551188 100644 --- a/addons/web/static/src/js/views/kanban/kanban_column.js +++ b/addons/web/static/src/js/views/kanban/kanban_column.js @@ -194,7 +194,7 @@ var KanbanColumn = Widget.extend({ this.trigger_up('close_quick_create'); // close other quick create widgets this.trigger_up('start_quick_create'); var context = this.data.getContext(); - context['default_' + this.groupedBy] = this.id; + context['default_' + this.groupedBy] = this.grouped_by_m2o ? this.id : this.data.value; this.quickCreateWidget = new RecordQuickCreate(this, { context: context, formViewRef: this.quickCreateView, 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 6f09381313c..025cbc79247 100644 --- a/addons/web/static/src/js/views/kanban/kanban_controller.js +++ b/addons/web/static/src/js/views/kanban/kanban_controller.js @@ -388,10 +388,12 @@ var KanbanController = BasicController.extend({ var columnState = self.model.get(column.db_id, {raw: true}); var context = columnState.getContext(); var state = self.model.get(self.handle, {raw: true}); - context['default_' + state.groupedBy[0]] = columnState.res_id; + var groupedBy = state.groupedBy[0]; + var groupedByM2O = state.fields[groupedBy].type === 'many2one'; + context['default_' + groupedBy] = groupedByM2O ? columnState.res_id : columnState.value; new view_dialogs.FormViewDialog(self, { res_model: state.model, - context: _.extend({default_name: name}, context), + context: _.extend({default_name: values.name || values.display_name}, context), title: _t("Create"), disable_multiple_selection: true, on_saved: function (record) { 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 0328ff1e0e6..b71a11f08ec 100644 --- a/addons/web/static/src/js/views/kanban/kanban_model.js +++ b/addons/web/static/src/js/views/kanban/kanban_model.js @@ -105,7 +105,8 @@ var KanbanModel = BasicModel.extend({ var group = this.localData[groupID]; var context = this._getContext(group); var parent = this.localData[group.parentID]; - context['default_' + parent.groupedBy[0]] = group.res_id; + var groupedByM2O = parent.fields[parent.groupedBy].type === 'many2one'; + context['default_' + parent.groupedBy[0]] = groupedByM2O ? group.res_id : group.value; var def; if (Object.keys(values).length === 1 && 'display_name' in values) { // only 'display_name is given, perform a 'name_create' |
