summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/views')
-rw-r--r--addons/web/static/src/js/views/calendar/calendar_model.js4
-rw-r--r--addons/web/static/src/js/views/list/list_controller.js13
-rw-r--r--addons/web/static/src/js/views/view_dialogs.js24
3 files changed, 34 insertions, 7 deletions
diff --git a/addons/web/static/src/js/views/calendar/calendar_model.js b/addons/web/static/src/js/views/calendar/calendar_model.js
index eb6d7176884..4374421d7b3 100644
--- a/addons/web/static/src/js/views/calendar/calendar_model.js
+++ b/addons/web/static/src/js/views/calendar/calendar_model.js
@@ -2,6 +2,7 @@ odoo.define('web.CalendarModel', function (require) {
"use strict";
var AbstractModel = require('web.AbstractModel');
+var Context = require('web.Context');
var core = require('web.core');
var fieldUtils = require('web.field_utils');
var session = require('web.session');
@@ -298,11 +299,12 @@ return AbstractModel.extend({
data[k] = dateToServer(data[k]);
}
}
+ var context = new Context(this.data.context, {from_ui: true});
return this._rpc({
model: this.modelName,
method: 'write',
args: [[record.id], data],
- context: this.data.context
+ context: context
});
},
diff --git a/addons/web/static/src/js/views/list/list_controller.js b/addons/web/static/src/js/views/list/list_controller.js
index 2465b1ee3c5..7222d792c69 100644
--- a/addons/web/static/src/js/views/list/list_controller.js
+++ b/addons/web/static/src/js/views/list/list_controller.js
@@ -87,9 +87,20 @@ var ListController = BasicController.extend({
* @returns {number[]} list of res_ids
*/
getSelectedIds: function () {
+ return _.map(this.getSelectedRecords(), function (record) {
+ return record.res_id;
+ });
+ },
+ /**
+ * Returns the list of currently selected records (with the check boxes on
+ * the left)
+ *
+ * @returns {Object[]} list of records
+ */
+ getSelectedRecords: function () {
var self = this;
return _.map(this.selectedRecords, function (db_id) {
- return self.model.get(db_id, {raw: true}).res_id;
+ return self.model.get(db_id, {raw: true});
});
},
/**
diff --git a/addons/web/static/src/js/views/view_dialogs.js b/addons/web/static/src/js/views/view_dialogs.js
index 876c37fbd59..645540b7a57 100644
--- a/addons/web/static/src/js/views/view_dialogs.js
+++ b/addons/web/static/src/js/views/view_dialogs.js
@@ -238,8 +238,11 @@ var SelectCreateListController = ListController.extend({
// row of the list) such that it triggers up 'select_record' with its res_id.
custom_events: _.extend({}, ListController.prototype.custom_events, {
open_record: function (event) {
- var selected_record = this.model.get(event.data.id);
- this.trigger_up('select_record', {id: selected_record.res_id});
+ var selectedRecord = this.model.get(event.data.id);
+ this.trigger_up('select_record', {
+ id: selectedRecord.res_id,
+ display_name: selectedRecord.data.display_name,
+ });
},
}),
});
@@ -251,7 +254,7 @@ var SelectCreateDialog = ViewDialog.extend({
custom_events: _.extend({}, ViewDialog.prototype.custom_events, {
select_record: function (event) {
if (!this.options.readonly) {
- this.on_selected([event.data.id]);
+ this.on_selected([event.data]);
this.close();
}
},
@@ -369,7 +372,14 @@ var SelectCreateDialog = ViewDialog.extend({
disabled: true,
close: true,
click: function () {
- self.on_selected(self.list_controller.getSelectedIds());
+ var records = self.list_controller.getSelectedRecords();
+ var values = _.map(records, function (record) {
+ return {
+ id: record.res_id,
+ display_name: record.data.display_name,
+ };
+ });
+ self.on_selected(values);
},
});
}
@@ -399,7 +409,11 @@ var SelectCreateDialog = ViewDialog.extend({
var self = this;
var dialog = new FormViewDialog(this, _.extend({}, this.options, {
on_saved: function (record) {
- self.on_selected([record.res_id]);
+ var values = [{
+ id: record.res_id,
+ display_name: record.data.display_name,
+ }];
+ self.on_selected(values);
},
})).open();
dialog.on('closed', this, this.close.bind(this));