summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2018-10-11 14:39:43 +0200
committerAaron Bohy <aab@odoo.com>2018-10-19 13:15:30 +0200
commit120709f807bef910ecf29d058a603da4dbcd8d82 (patch)
treeb81e7c74c6945beb8341d1380c8bb6be483d7278 /addons/web/static/src/js/views
parentf2ada1560e426980b619fc8bad982037a76f2307 (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/views')
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_column.js2
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_controller.js6
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_model.js3
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'