diff --git a/addons/account/static/src/js/reconciliation/reconciliation_model.js b/addons/account/static/src/js/reconciliation/reconciliation_model.js
index 7b2efb82de1..d0903f63abe 100644
--- a/addons/account/static/src/js/reconciliation/reconciliation_model.js
+++ b/addons/account/static/src/js/reconciliation/reconciliation_model.js
@@ -147,7 +147,7 @@ var StatementModel = BasicModel.extend({
autoReconciliation: function () {
var self = this;
var ids = _.pluck(_.filter(_.values(this.lines), {'reconciled': false}), 'id');
- return this.rpc("account.bank.statement.line", 'reconciliation_widget_auto_reconcile')
+ return this._rpc("account.bank.statement.line", 'reconciliation_widget_auto_reconcile')
.args([ids, self.valuenow])
.exec()
.then(function (result) {
@@ -212,7 +212,7 @@ var StatementModel = BasicModel.extend({
* @returns {Deferred}
*/
changeName: function (name) {
- return this.rpc("account.bank.statement", "write")
+ return this._rpc("account.bank.statement", "write")
.args([this.bank_statement_id.id, {name: name}])
.exec();
},
@@ -293,7 +293,7 @@ var StatementModel = BasicModel.extend({
if (!statement_ids) {
return $.when();
}
- var def_statement = this.rpc("account.bank.statement", 'reconciliation_widget_preprocess')
+ var def_statement = this._rpc("account.bank.statement", 'reconciliation_widget_preprocess')
.args([statement_ids])
.exec()
.then(function (statement) {
@@ -313,18 +313,23 @@ var StatementModel = BasicModel.extend({
};
});
});
- var def_reconcileModel = this.performRPC('/web/dataset/search_read', {model: 'account.reconcile.model', domain: []}).then(function (reconcileModels) {
- self.reconcileModels = reconcileModels.records;
- });
- var def_account = this.performRPC('/web/dataset/search_read', {model: 'account.account', domain: [], fields: ['code']}).then(function (accounts) {
- self.accounts = _.object(_.pluck(accounts.records, 'id'), _.pluck(accounts.records, 'code'));
- });
+ var def_reconcileModel = this._rpc('account.reconcile.model', 'search_read')
+ .exec()
+ .then(function (reconcileModels) {
+ self.reconcileModels = reconcileModels.records;
+ });
+ var def_account = this._rpc('account.account', 'search_read')
+ .withFields(['code'])
+ .exec()
+ .then(function (accounts) {
+ self.accounts = _.object(_.pluck(accounts.records, 'id'), _.pluck(accounts.records, 'code'));
+ });
return $.when(def_statement, def_reconcileModel, def_account).then(function () {
_.each(self.lines, function (line) {
line.reconcileModels = self.reconcileModels;
});
var ids = _.pluck(self.lines, 'id');
- return self.rpc("account.bank.statement.line", 'get_data_for_reconciliation_widget')
+ return self._rpc("account.bank.statement.line", 'get_data_for_reconciliation_widget')
.args([ids])
.exec()
.then(self._formatLine.bind(self));
@@ -477,7 +482,7 @@ var StatementModel = BasicModel.extend({
self.valuenow++;
});
- return this.rpc("account.bank.statement.line", 'process_reconciliations')
+ return this._rpc("account.bank.statement.line", 'process_reconciliations')
.args([ids, values])
.exec()
.then(function () {
@@ -541,7 +546,7 @@ var StatementModel = BasicModel.extend({
});
var args = [[prop.tax_id.id], prop.base_amount, line.st_line.currency_id];
- tax_defs.push(self.rpc("account.tax", 'json_friendly_compute_all')
+ tax_defs.push(self._rpc("account.tax", 'json_friendly_compute_all')
.args(args)
.exec()
.then(function (result) {
@@ -775,7 +780,7 @@ var StatementModel = BasicModel.extend({
var offset = line.offset;
var limit = 6;
var args = [line.id, line.st_line.partner_id, excluded_ids, filter, offset, limit];
- return this.rpc("account.bank.statement.line", 'get_move_lines_for_reconciliation_widget')
+ return this._rpc("account.bank.statement.line", 'get_move_lines_for_reconciliation_widget')
.args(args)
.exec()
.then(this._formatMoveLine.bind(this, handle));
@@ -830,10 +835,10 @@ var ManualModel = StatementModel.extend({
domain_account_id.push(['company_id', 'in', context.company_ids]);
}
- var def_account = this.performRPC('/web/dataset/search_read', {
- model: 'account.account',
- domain: domain_account_id,
- fields: ['code']})
+ var def_account = this._rpc('account.account', 'search_read')
+ .withDomain(domain_account_id)
+ .withFields(['code'])
+ .exec()
.then(function (accounts) {
self.account_ids = _.pluck(accounts.records, 'id');
self.accounts = _.object(self.account_ids, _.pluck(accounts.records, 'code'));
@@ -845,7 +850,7 @@ var ManualModel = StatementModel.extend({
case 'suppliers':
var mode = context.mode === 'customers' ? 'receivable' : 'payable';
var args = ['partner', context.partner_ids || null, mode];
- return self.rpc("account.move.line", 'get_data_for_manual_reconciliation')
+ return self._rpc("account.move.line", 'get_data_for_manual_reconciliation')
.args(args)
.exec()
.then(function (result) {
@@ -856,7 +861,7 @@ var ManualModel = StatementModel.extend({
});
case 'accounts':
var args = ['account', self.account_ids];
- return self.rpc("account.move.line", 'get_data_for_manual_reconciliation')
+ return self._rpc("account.move.line", 'get_data_for_manual_reconciliation')
.args(args)
.exec()
.then(function (result) {
@@ -873,7 +878,7 @@ var ManualModel = StatementModel.extend({
account_ids = null; // TOFIX: REMOVE ME
partner_ids = null; // TOFIX: REMOVE ME
var args = [partner_ids, account_ids];
- return self.rpc("account.move.line", 'get_data_for_manual_reconciliation_widget')
+ return self._rpc("account.move.line", 'get_data_for_manual_reconciliation_widget')
.args(args)
.exec()
.then(function (result) {
@@ -939,7 +944,7 @@ var ManualModel = StatementModel.extend({
});
if (process_reconciliations.length) {
- def = self.rpc("account.move.line", 'process_reconciliations')
+ def = self._rpc("account.move.line", 'process_reconciliations')
.args([process_reconciliations])
.exec();
}
@@ -968,12 +973,12 @@ var ManualModel = StatementModel.extend({
});
return $.when(defs).then(function() {
if (account_ids.length) {
- self.rpc("account.account", 'mark_as_reconciled')
+ self._rpc("account.account", 'mark_as_reconciled')
.args([account_ids])
.exec();
}
if (partner_ids.length) {
- self.rpc("res.partner", 'mark_as_reconciled')
+ self._rpc("res.partner", 'mark_as_reconciled')
.args([partner_ids])
.exec();
}
@@ -1085,7 +1090,7 @@ var ManualModel = StatementModel.extend({
var offset = line.offset;
var limit = 6;
var args = [line.account_id.id, line.partner_id, excluded_ids, filter, offset, limit];
- return this.rpc("account.move.line", 'get_move_lines_for_manual_reconciliation')
+ return this._rpc("account.move.line", 'get_move_lines_for_manual_reconciliation')
.args(args)
.exec()
.then(this._formatMoveLine.bind(this, handle));
diff --git a/addons/barcodes/static/src/js/barcode_parser.js b/addons/barcodes/static/src/js/barcode_parser.js
index 926d8a11c82..d615e2e89fe 100644
--- a/addons/barcodes/static/src/js/barcode_parser.js
+++ b/addons/barcodes/static/src/js/barcode_parser.js
@@ -1,7 +1,6 @@
odoo.define('barcodes.BarcodeParser', function (require) {
"use strict";
-var ajax = require('web.ajax');
var Class = require('web.Class');
var rpc = require('web.rpc');
@@ -21,9 +20,9 @@ var BarcodeParser = Class.extend({
var self = this;
var id = this.nomenclature_id[0];
rpc.query({model: 'barcode.nomenclature', method: 'read'})
- .args([[id], ['name','rule_ids','upc_ean_conv']])
- .exec({callback: ajax.rpc.bind(ajax)})
- .then(function (nomenclatures){
+ .args([[id], ['name','rule_ids','upc_ean_conv']])
+ .exec({type: "ajax"})
+ .then(function (nomenclatures){
self.nomenclature = nomenclatures[0];
var args = [
@@ -33,7 +32,7 @@ var BarcodeParser = Class.extend({
return rpc
.query({model: 'barcode.rule', method: 'search_read'})
.args(args)
- .exec({callback: ajax.rpc.bind(ajax)});
+ .exec({type: "ajax"});
}).then(function(rules){
rules = rules.records.sort(function(a, b){ return a.sequence - b.sequence; });
self.nomenclature.rules = rules;
diff --git a/addons/base_import/static/src/js/base_import.js b/addons/base_import/static/src/js/base_import.js
index 7e8dc588e10..824f6c1dda8 100644
--- a/addons/base_import/static/src/js/base_import.js
+++ b/addons/base_import/static/src/js/base_import.js
@@ -176,7 +176,7 @@ var DataImport = Widget.extend(ControlPanelMixin, {
);
},
create_model: function() {
- return this.rpc('base_import.import', 'create')
+ return this._rpc('base_import.import', 'create')
.args([{res_model: this.res_model}])
.exec();
},
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index 273f0f61147..522b7fb19c2 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -56,9 +56,12 @@ var DashBoard = form_common.FormWidget.extend({
delete(action.attrs.colspan);
var action_id = _.str.toNumber(action.attrs.name);
if (!_.isNaN(action_id)) {
- self.rpc('/web/action/load', {action_id: action_id}).done(function(result) {
- self.on_load_action(result, column_index + '_' + action_index, action.attrs);
- });
+ self._rpc('/web/action/load')
+ .params({action_id: action_id})
+ .exec()
+ .done(function(result) {
+ self.on_load_action(result, column_index + '_' + action_index, action.attrs);
+ });
}
});
});
@@ -171,10 +174,12 @@ var DashBoard = form_common.FormWidget.extend({
board.columns.push(actions);
});
var arch = QWeb.render('DashBoard.xml', board);
- this.rpc('/web/view/add_custom', {
- view_id: this.view.fields_view.view_id,
- arch: arch
- });
+ this._rpc('/web/view/add_custom')
+ .params({
+ view_id: this.view.fields_view.view_id,
+ arch: arch
+ })
+ .exec();
},
on_load_action: function(result, index, action_attrs) {
var self = this,
@@ -416,19 +421,22 @@ FavoriteMenu.include({
c.dashboard_merge_domains_contexts = false;
var name = self.$add_dashboard_input.val();
- return self.rpc('/board/add_to_dashboard', {
- action_id: self.action_id || false,
- context_to_save: c,
- domain: domain,
- view_mode: self.view_manager.active_view.type,
- name: name,
- }).then(function (r) {
- if (r) {
- self.do_notify(_.str.sprintf(_t("'%s' added to dashboard"), name), '');
- } else {
- self.do_warn(_t("Could not add filter to dashboard"));
- }
- });
+ return self._rpc('/board/add_to_dashboard')
+ .params({
+ action_id: self.action_id || false,
+ context_to_save: c,
+ domain: domain,
+ view_mode: self.view_manager.active_view.type,
+ name: name,
+ })
+ .exec()
+ .then(function (r) {
+ if (r) {
+ self.do_notify(_.str.sprintf(_t("'%s' added to dashboard"), name), '');
+ } else {
+ self.do_warn(_t("Could not add filter to dashboard"));
+ }
+ });
},
});
diff --git a/addons/calendar/static/src/js/base_calendar.js b/addons/calendar/static/src/js/base_calendar.js
index 688aa7c8f1a..d0ed1eade7e 100644
--- a/addons/calendar/static/src/js/base_calendar.js
+++ b/addons/calendar/static/src/js/base_calendar.js
@@ -22,12 +22,15 @@ var CalendarNotification = Notification.extend({
'click .link2event': function() {
var self = this;
- this.rpc("/web/action/load", {
- action_id: "calendar.action_calendar_event_notify",
- }).then(function(r) {
- r.res_id = self.eid;
- return self.do_action(r);
- });
+ this._rpc("/web/action/load")
+ .params({
+ action_id: "calendar.action_calendar_event_notify",
+ })
+ .exec()
+ .then(function(r) {
+ r.res_id = self.eid;
+ return self.do_action(r);
+ });
},
'click .link2recall': function() {
@@ -36,7 +39,8 @@ var CalendarNotification = Notification.extend({
'click .link2showed': function() {
this.destroy(true);
- this.rpc("/calendar/notify_ack");
+ this._rpc("/calendar/notify_ack")
+ .exec();
},
});
},
diff --git a/addons/crm/static/src/js/sales_team_dashboard.js b/addons/crm/static/src/js/sales_team_dashboard.js
index 9ab331d70bb..aa2339f2a6e 100644
--- a/addons/crm/static/src/js/sales_team_dashboard.js
+++ b/addons/crm/static/src/js/sales_team_dashboard.js
@@ -5,7 +5,8 @@ var SalesTeamDashboard = require('sales_team.dashboard');
SalesTeamDashboard.Model.include({
_fetchDashboardData: function() {
- return this.rpc('crm.lead', 'retrieve_sales_dashboard').exec();
+ return this._rpc('crm.lead', 'retrieve_sales_dashboard')
+ .exec();
},
});
diff --git a/addons/google_calendar/static/src/js/google_calendar.js b/addons/google_calendar/static/src/js/google_calendar.js
index f465b06236e..bbe0f14d098 100644
--- a/addons/google_calendar/static/src/js/google_calendar.js
+++ b/addons/google_calendar/static/src/js/google_calendar.js
@@ -56,20 +56,23 @@ CalendarRenderer.include({
var text = _.str.sprintf(confirm_text1 + "\n" + confirm_text2 + "\n\n" + confirm_text3, o.info.new_name, o.info.old_name);
Dialog.confirm(self, text, {
confirm_callback: function() {
- self.rpc('/google_calendar/remove_references', {
- model: self.state.model,
- local_context: context,
- }).done(function(o) {
- if (o.status === "OK") {
- Dialog.alert(self, _t("All events have been disconnected from your previous account. You can now restart the synchronization"), {
- title: _t('Event disconnection success'),
- });
- } else if (o.status === "KO") {
- Dialog.alert(self, _t("An error occured while disconnecting events from your previous account. Please retry or contact your administrator."), {
- title: _t('Event disconnection error'),
- });
- } // else NOP
- });
+ self._rpc('/google_calendar/remove_references')
+ .params({
+ model: self.state.model,
+ local_context: context,
+ })
+ .exec()
+ .done(function(o) {
+ if (o.status === "OK") {
+ Dialog.alert(self, _t("All events have been disconnected from your previous account. You can now restart the synchronization"), {
+ title: _t('Event disconnection success'),
+ });
+ } else if (o.status === "KO") {
+ Dialog.alert(self, _t("An error occured while disconnecting events from your previous account. Please retry or contact your administrator."), {
+ title: _t('Event disconnection error'),
+ });
+ } // else NOP
+ });
},
title: _t('Accounts'),
});
diff --git a/addons/google_drive/static/src/js/gdrive.js b/addons/google_drive/static/src/js/gdrive.js
index 170c992f8f8..204d6824bad 100644
--- a/addons/google_drive/static/src/js/gdrive.js
+++ b/addons/google_drive/static/src/js/gdrive.js
@@ -59,7 +59,7 @@ Sidebar.include({
var self = this;
var domain = [['id', '=', doc_item.config_id]];
var fields = ['google_drive_resource_id', 'google_drive_client_id'];
- this.rpc('google.drive.config', 'search_read')
+ this._rpc('google.drive.config', 'search_read')
.args([domain, fields])
.exec()
.then(function (configs) {
diff --git a/addons/hr_attendance/static/src/js/greeting_message.js b/addons/hr_attendance/static/src/js/greeting_message.js
index 9eef6691baf..ac27511c3b8 100644
--- a/addons/hr_attendance/static/src/js/greeting_message.js
+++ b/addons/hr_attendance/static/src/js/greeting_message.js
@@ -131,7 +131,7 @@ var GreetingMessage = Widget.extend(BarcodeHandlerMixin, {
if (this.return_to_main_menu) { // in case of multiple scans in the greeting message view, delete the timer, a new one will be created.
clearTimeout(this.return_to_main_menu);
}
- this.rpc('hr.employee', 'attendance_scan')
+ this._rpc('hr.employee', 'attendance_scan')
.args([barcode, ])
.exec()
.then(function (result) {
diff --git a/addons/hr_attendance/static/src/js/kiosk_confirm.js b/addons/hr_attendance/static/src/js/kiosk_confirm.js
index d66e1982989..f8b8581322b 100644
--- a/addons/hr_attendance/static/src/js/kiosk_confirm.js
+++ b/addons/hr_attendance/static/src/js/kiosk_confirm.js
@@ -12,7 +12,7 @@ var KioskConfirm = Widget.extend({
"click .o_hr_attendance_sign_in_out_icon": function () {
var self = this;
this.$('.o_hr_attendance_sign_in_out_icon').attr("disabled", "disabled");
- this.rpc('hr.employee', 'attendance_manual')
+ this._rpc('hr.employee', 'attendance_manual')
.args([[this.employee_id], this.next_action])
.exec()
.then(function(result) {
@@ -38,7 +38,7 @@ var KioskConfirm = Widget.extend({
'click .o_hr_attendance_pin_pad_button_ok': function() {
var self = this;
this.$('.o_hr_attendance_pin_pad_button_ok').attr("disabled", "disabled");
- this.rpc('hr.employee', 'attendance_manual')
+ this._rpc('hr.employee', 'attendance_manual')
.args([[this.employee_id], this.next_action, this.$('.o_hr_attendance_PINbox').val()])
.exec()
.then(function(result) {
diff --git a/addons/hr_attendance/static/src/js/kiosk_mode.js b/addons/hr_attendance/static/src/js/kiosk_mode.js
index 24b843028c6..e8b21dd05ac 100644
--- a/addons/hr_attendance/static/src/js/kiosk_mode.js
+++ b/addons/hr_attendance/static/src/js/kiosk_mode.js
@@ -23,7 +23,7 @@ var KioskMode = Widget.extend(BarcodeHandlerMixin, {
start: function () {
var self = this;
self.session = Session;
- this.rpc('res.company', 'search_read')
+ this._rpc('res.company', 'search_read')
.args([[['id', '=', self.session.company_id]], ['name']])
.exec()
.then(function (companies){
@@ -37,7 +37,7 @@ var KioskMode = Widget.extend(BarcodeHandlerMixin, {
on_barcode_scanned: function(barcode) {
var self = this;
- this.rpc('hr.employee', 'attendance_scan')
+ this._rpc('hr.employee', 'attendance_scan')
.args([barcode, ])
.exec()
.then(function (result) {
diff --git a/addons/hr_attendance/static/src/js/my_attendances.js b/addons/hr_attendance/static/src/js/my_attendances.js
index f4df4b7306a..1dbcacd8975 100644
--- a/addons/hr_attendance/static/src/js/my_attendances.js
+++ b/addons/hr_attendance/static/src/js/my_attendances.js
@@ -19,7 +19,7 @@ var MyAttendances = Widget.extend({
start: function () {
var self = this;
- this.rpc('hr.employee', 'search_read')
+ this._rpc('hr.employee', 'search_read')
.args([[['user_id', '=', self.session.uid]], ['attendance_state', 'name']])
.exec()
.then(function (res) {
@@ -36,7 +36,7 @@ var MyAttendances = Widget.extend({
update_attendance: function () {
var self = this;
- this.rpc('hr.employee', 'attendance_manual')
+ this._rpc('hr.employee', 'attendance_manual')
.args([[self.employee.id], 'hr_attendance.hr_attendance_action_my_attendances'])
.exec()
.then(function(result) {
diff --git a/addons/hr_timesheet_sheet/static/src/js/timesheet.js b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
index 50d6754e006..5d6235e094f 100644
--- a/addons/hr_timesheet_sheet/static/src/js/timesheet.js
+++ b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
@@ -57,7 +57,7 @@ var WeeklyTimesheet = form_common.FormWidget.extend(form_common.ReinitializeWidg
var commands = this.field_manager.get_field_value("timesheet_ids");
var self = this;
- this.rpc(this.view.model, "resolve_2many_commands")
+ this._rpc(this.view.model, "resolve_2many_commands")
.args(["timesheet_ids", commands, []])
.exec()
.done(function(result) {
@@ -111,7 +111,7 @@ var WeeklyTimesheet = form_common.FormWidget.extend(form_common.ReinitializeWidg
var default_get;
var self = this;
return this.render_drop.add(
- this.rpc("account.analytic.line", "default_get")
+ this._rpc("account.analytic.line", "default_get")
.args([['account_id','general_account_id','journal_id','date','name','user_id','product_id','product_uom_id','amount','unit_amount','project_id']])
.withContext({'user_id': self.get('user_id')} )
.exec()
@@ -163,7 +163,7 @@ var WeeklyTimesheet = form_common.FormWidget.extend(form_common.ReinitializeWidg
}).value();
// we need the name_get of the projects
- this.rpc("project.project", "name_get")
+ this._rpc("project.project", "name_get")
.args([_.pluck(projects, "project")])
.exec()
.then(function(result) {
diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js
index d1afae2e675..a61aea9a982 100644
--- a/addons/mail/static/src/js/activity.js
+++ b/addons/mail/static/src/js/activity.js
@@ -52,7 +52,7 @@ var AbstractActivityField = AbstractField.extend({
// private
_markActivityDone: function (id) {
- return this.rpc('mail.activity', 'action_done')
+ return this._rpc('mail.activity', 'action_done')
.args([[id]])
.exec();
},
@@ -61,7 +61,7 @@ var AbstractActivityField = AbstractField.extend({
var missing_ids = _.difference(this.value.res_ids, _.pluck(this.activities, 'id'));
var fetch_def;
if (missing_ids.length) {
- fetch_def = this.rpc('mail.activity', 'read')
+ fetch_def = this._rpc('mail.activity', 'read')
.args([missing_ids])
.exec();
}
@@ -168,7 +168,7 @@ var Activity = AbstractActivityField.extend({
_onUnlinkActivity: function (event) {
event.preventDefault();
var activity_id = $(event.currentTarget).data('activity-id');
- return this.rpc('mail.activity', 'unlink')
+ return this._rpc('mail.activity', 'unlink')
.args([[activity_id]])
.exec()
.then(this._reload.bind(this, {activity: true}));
diff --git a/addons/mail/static/src/js/chat_manager.js b/addons/mail/static/src/js/chat_manager.js
index 4a30bac6ca4..9c60851cc22 100644
--- a/addons/mail/static/src/js/chat_manager.js
+++ b/addons/mail/static/src/js/chat_manager.js
@@ -611,9 +611,9 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
bus.on('notification', null, on_notification);
this.channel_seen = _.throttle(function (channel) {
- return self.rpc('mail.channel', 'channel_seen')
+ return self._rpc('mail.channel', 'channel_seen')
.args([[channel.id]])
- .exec({shadow: true});
+ .exec({options: {shadow: true}});
}, 3000);
},
@@ -676,7 +676,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
domain = [['id', '<', min_message_id]].concat(domain);
}
- return this.rpc('mail.message', 'message_fetch')
+ return this._rpc('mail.message', 'message_fetch')
.args([domain])
.kwargs({limit: LIMIT, context: session.user_context})
.exec()
@@ -704,7 +704,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
if (options.force_fetch || _.difference(ids.slice(0, LIMIT), loaded_msg_ids).length) {
var ids_to_load = _.difference(ids, loaded_msg_ids).slice(0, LIMIT);
- return this.rpc('mail.message', 'message_format')
+ return this._rpc('mail.message', 'message_format')
.args([ids_to_load])
.kwargs({context: session.user_context})
.exec()
@@ -743,7 +743,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
}
if ('channel_id' in options) {
// post a message in a channel or execute a command
- return this.rpc('mail.channel', data.command ? 'execute_command' : 'message_post')
+ return this._rpc('mail.channel', data.command ? 'execute_command' : 'message_post')
.args([options.channel_id])
.kwargs(_.extend(msg, {
message_type: 'comment',
@@ -763,12 +763,12 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
subtype_id: data.subtype_id,
});
- return this.rpc(options.model, 'message_post')
+ return this._rpc(options.model, 'message_post')
.args([options.res_id])
.kwargs(msg)
.exec()
.then(function (msg_id) {
- return self.rpc('mail.message', 'message_format')
+ return self._rpc('mail.message', 'message_format')
.args([msg_id])
.exec()
.then(function (msgs) {
@@ -812,7 +812,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
// get messages for a chatter, when it doesn't know the ids (use
// case is when using the full composer)
var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]];
- this.rpc('mail.message', 'message_fetch')
+ this._rpc('mail.message', 'message_fetch')
.args([domain])
.kwargs({limit: 30})
.exec()
@@ -822,12 +822,12 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
}
},
toggle_star_status: function (message_id) {
- return this.rpc('mail.message', 'toggle_message_starred')
+ return this._rpc('mail.message', 'toggle_message_starred')
.args([[message_id]])
.exec();
},
unstar_all: function () {
- return this.rpc('mail.message', 'unstar_all')
+ return this._rpc('mail.message', 'unstar_all')
.args([[]])
.exec();
},
@@ -838,7 +838,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
return !message || message.is_needaction;
});
if (ids.length) {
- return this.rpc('mail.message', 'set_message_done')
+ return this._rpc('mail.message', 'set_message_done')
.args([ids])
.exec();
} else {
@@ -847,14 +847,14 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
},
mark_all_as_read: function (channel, domain) {
if ((channel.id === "channel_inbox" && needaction_counter) || (channel && channel.needaction_counter)) {
- return this.rpc('mail.message', 'mark_all_as_read')
+ return this._rpc('mail.message', 'mark_all_as_read')
.kwargs({channel_ids: channel.id !== "channel_inbox" ? [channel.id] : [], domain: domain})
.exec();
}
return $.when();
},
undo_mark_as_read: function (message_ids, channel) {
- return this.rpc('mail.message', 'mark_as_unread')
+ return this._rpc('mail.message', 'mark_as_unread')
.args([message_ids, [channel.id]])
.exec();
},
@@ -886,9 +886,9 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
return mention_partner_suggestions;
}
if (!channel.members_deferred) {
- channel.members_deferred = this.rpc('mail.channel', "channel_fetch_listeners")
+ channel.members_deferred = this._rpc('mail.channel', "channel_fetch_listeners")
.args([channel.uuid])
- .exec({shadow: true})
+ .exec({options: {shadow: true}})
.then(function (members) {
var suggestions = [];
_.each(mention_partner_suggestions, function (partners) {
@@ -949,9 +949,9 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
},
detach_channel: function (channel) {
- return this.rpc('mail.channel', "channel_minimize")
+ return this._rpc('mail.channel', "channel_minimize")
.args([channel.uuid, true])
- .exec({shadow: true});
+ .exec({options: {shadow: true}});
},
remove_chatter_messages: function (model) {
messages = _.reject(messages, function (message) {
@@ -963,7 +963,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
var method = type === "dm" ? "channel_get" : "channel_create";
var args = type === "dm" ? [[name]] : [name, type];
- return this.rpc('mail.channel', method)
+ return this._rpc('mail.channel', method)
.args(args)
.exec()
.then(add_channel);
@@ -978,7 +978,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
// channel already joined
channel_defs[channel_id] = $.when(channel);
} else {
- channel_defs[channel_id] = this.rpc('mail.channel', 'channel_join_and_get_info')
+ channel_defs[channel_id] = this._rpc('mail.channel', 'channel_join_and_get_info')
.args([[channel_id]])
.exec()
.then(function (result) {
@@ -988,7 +988,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
return channel_defs[channel_id];
},
open_and_detach_dm: function (partner_id) {
- return this.rpc('mail.channel', 'channel_get_and_minimize')
+ return this._rpc('mail.channel', 'channel_get_and_minimize')
.args([[partner_id]])
.exec()
.then(add_channel);
@@ -999,20 +999,20 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
unsubscribe: function (channel) {
if (_.contains(['public', 'private'], channel.type)) {
- return this.rpc('mail.channel', 'action_unfollow')
+ return this._rpc('mail.channel', 'action_unfollow')
.args([[channel.id]])
.exec();
} else {
- return this.rpc('mail.channel', 'channel_pin')
+ return this._rpc('mail.channel', 'channel_pin')
.args([channel.uuid, false])
.exec();
}
},
close_chat_session: function (channel_id) {
var channel = this.get_channel(channel_id);
- this.rpc('mail.channel', "channel_fold")
+ this._rpc('mail.channel', "channel_fold")
.kwargs({uuid : channel.uuid, state : "closed"})
- .exec({shadow: true});
+ .exec({options: {shadow: true}});
},
fold_channel: function (channel_id, folded) {
var args = {
@@ -1021,9 +1021,9 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
if (_.isBoolean(folded)) {
args.state = folded ? 'folded' : 'open';
}
- return this.rpc('mail.channel', "channel_fold")
+ return this._rpc('mail.channel', "channel_fold")
.kwargs(args)
- .exec({shadow: true});
+ .exec({options: {shadow: true}});
},
/**
* Special redirection handling for given model and id
@@ -1046,7 +1046,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
};
if (res_model === "res.partner") {
var domain = [["partner_id", "=", res_id]];
- this.rpc('res.users', "search")
+ this._rpc('res.users', "search")
.args([domain])
.exec()
.then(function (user_ids) {
@@ -1057,7 +1057,7 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
}
});
} else {
- this.rpc(res_model, 'get_formview_id')
+ this._rpc(res_model, 'get_formview_id')
.args([[res_id], session.user_context])
.exec()
.then(function (view_id) {
@@ -1083,9 +1083,9 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
if (!channels_preview_def) {
if (missing_channels.length) {
var missing_channel_ids = _.pluck(missing_channels, 'id');
- channels_preview_def = this.rpc('mail.channel', 'channel_fetch_preview')
+ channels_preview_def = this._rpc('mail.channel', 'channel_fetch_preview')
.args([missing_channel_ids])
- .exec({shadow: true});
+ .exec({options: {shadow: true}});
} else {
channels_preview_def = $.when();
}
@@ -1120,9 +1120,9 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, {
});
if (!values.length) {
// extend the research to all users
- def = this.rpc('res.partner', 'im_search')
+ def = this._rpc('res.partner', 'im_search')
.args([search_val, limit || 20])
- .exec({shadow: true});
+ .exec({options: {shadow: true}});
} else {
def = $.when(values);
}
diff --git a/addons/mail/static/src/js/chatter.js b/addons/mail/static/src/js/chatter.js
index 67f29ab1bbb..a6a04884f76 100644
--- a/addons/mail/static/src/js/chatter.js
+++ b/addons/mail/static/src/js/chatter.js
@@ -245,7 +245,7 @@ var Chatter = Widget.extend(chat_mixin, {
this.suggested_partners_def = $.Deferred();
var method = 'message_get_suggested_recipients';
var args = [[this.context.default_res_id], this.context];
- this.rpc(this.record.model, method)
+ this._rpc(this.record.model, method)
.args(args)
.exec()
.then(function (result) {
diff --git a/addons/mail/static/src/js/chatter_composer.js b/addons/mail/static/src/js/chatter_composer.js
index 4e7eb6a14ec..8f64622e209 100644
--- a/addons/mail/static/src/js/chatter_composer.js
+++ b/addons/mail/static/src/js/chatter_composer.js
@@ -125,7 +125,7 @@ var ChatterComposer = composer.BasicComposer.extend({
var def;
if (names_to_find.length > 0) {
var args = [[this.context.default_res_id], names_to_find];
- def = this.rpc(this.model, 'message_partner_info_from_emails')
+ def = this._rpc(this.model, 'message_partner_info_from_emails')
.args(args)
.exec();
}
@@ -173,7 +173,7 @@ var ChatterComposer = composer.BasicComposer.extend({
var def;
if (new_names_to_find.length > 0) {
var args = [[self.context.default_res_id], new_names_to_find, true];
- self.rpc(self.model, 'message_partner_info_from_emails')
+ self._rpc(self.model, 'message_partner_info_from_emails')
.args(args)
.exec();
}
diff --git a/addons/mail/static/src/js/client_action.js b/addons/mail/static/src/js/client_action.js
index e461161c437..28acb02828d 100644
--- a/addons/mail/static/src/js/client_action.js
+++ b/addons/mail/static/src/js/client_action.js
@@ -69,7 +69,7 @@ var PartnerInviteDialog = Dialog.extend({
var self = this;
var data = this.$input.select2('data');
if(data.length >= 1){
- return this.rpc('mail.channel', 'channel_invite')
+ return this._rpc('mail.channel', 'channel_invite')
.args([this.channel_id])
.kwargs({partner_ids: _.pluck(data, 'id')})
.exec()
@@ -381,7 +381,7 @@ var ChatAction = Widget.extend(ControlPanelMixin, {
},
do_search_channel: function(search_val){
- return this.rpc('mail.channel', 'channel_search_to_join')
+ return this._rpc('mail.channel', 'channel_search_to_join')
.args([search_val])
.exec()
.then(function(result){
diff --git a/addons/mail/static/src/js/composer.js b/addons/mail/static/src/js/composer.js
index b8a25cda7e3..0471f6e8a5b 100644
--- a/addons/mail/static/src/js/composer.js
+++ b/addons/mail/static/src/js/composer.js
@@ -666,7 +666,7 @@ var BasicComposer = Widget.extend(chat_mixin, {
var def = $.Deferred();
clearTimeout(this.mention_fetch_timer);
this.mention_fetch_timer = setTimeout(function () {
- return self.rpc(model, method)
+ return self._rpc(model, method)
.kwargs(kwargs)
.exec()
.then(function (results) {
diff --git a/addons/mail/static/src/js/followers.js b/addons/mail/static/src/js/followers.js
index 314e874d7a6..7c4529b203e 100644
--- a/addons/mail/static/src/js/followers.js
+++ b/addons/mail/static/src/js/followers.js
@@ -195,8 +195,9 @@ var Followers = AbstractField.extend({
var missing_ids = _.difference(this.value.res_ids, _.pluck(this.followers, 'id'));
var def;
if (missing_ids.length) {
- var args = { follower_ids: missing_ids, res_model: this.model };
- def = this.performRPC('/mail/read_followers', args);
+ def = this._rpc('/mail/read_followers')
+ .params({ follower_ids: missing_ids, res_model: this.model })
+ .exec();
}
return $.when(def).then(function (results) {
if (results) {
@@ -219,7 +220,7 @@ var Followers = AbstractField.extend({
partner_ids: [this.partnerID],
context: {}, // FIXME
};
- this.rpc(this.model, 'message_subscribe')
+ this._rpc(this.model, 'message_subscribe')
.args([[this.res_id]])
.kwargs(kwargs)
.exec()
@@ -242,7 +243,7 @@ var Followers = AbstractField.extend({
ids.channel_ids,
{}, // FIXME
];
- self.rpc(self.model, 'message_unsubscribe')
+ self._rpc(self.model, 'message_unsubscribe')
.args(args)
.exec()
.then(self._reload.bind(self));
@@ -286,7 +287,7 @@ var Followers = AbstractField.extend({
var kwargs = _.extend({}, ids);
kwargs.subtype_ids = checklist;
kwargs.context = {}; // FIXME
- this.rpc(this.model, 'message_subscribe')
+ this._rpc(this.model, 'message_subscribe')
.args([[this.res_id]])
.kwargs(kwargs)
.exec()
@@ -307,32 +308,32 @@ var Followers = AbstractField.extend({
var self = this;
var $currentTarget = $(event.currentTarget);
var follower_id = $currentTarget.data('follower-id'); // id of model mail_follower
- return this.performRPC('/mail/read_subscription_data', {
- res_model: this.model,
- follower_id: follower_id,
- }).then(function (data) {
- var res_id = $currentTarget.data('oe-id'); // id of model res_partner or mail_channel
- var is_channel = $currentTarget.data('oe-model') === 'mail.channel';
- self.dialog = new Dialog(this, {
- size: 'medium',
- title: _t('Edit Subscription of ') + $currentTarget.siblings('a').text(),
- buttons: [
- {
- text: _t("Apply"),
- classes: 'btn-primary',
- click: function () {
- self._updateSubscription(event, res_id, is_channel);
+ return this._rpc('/mail/read_subscription_data')
+ .params({res_model: this.model, follower_id: follower_id})
+ .exec()
+ .then(function (data) {
+ var res_id = $currentTarget.data('oe-id'); // id of model res_partner or mail_channel
+ var is_channel = $currentTarget.data('oe-model') === 'mail.channel';
+ self.dialog = new Dialog(this, {
+ size: 'medium',
+ title: _t('Edit Subscription of ') + $currentTarget.siblings('a').text(),
+ buttons: [
+ {
+ text: _t("Apply"),
+ classes: 'btn-primary',
+ click: function () {
+ self._updateSubscription(event, res_id, is_channel);
+ },
+ close: true
},
- close: true
- },
- {
- text: _t("Cancel"),
- close: true,
- },
- ],
- }).open();
- self._displaySubtypes(data, true, is_channel);
- });
+ {
+ text: _t("Cancel"),
+ close: true,
+ },
+ ],
+ }).open();
+ self._displaySubtypes(data, true, is_channel);
+ });
},
_onFollowButtonClicked: function () {
if (!this.is_follower) {
diff --git a/addons/point_of_sale/static/src/js/devices.js b/addons/point_of_sale/static/src/js/devices.js
index 0a40a495a3c..6ca9b66e364 100644
--- a/addons/point_of_sale/static/src/js/devices.js
+++ b/addons/point_of_sale/static/src/js/devices.js
@@ -1,7 +1,6 @@
odoo.define('point_of_sale.devices', function (require) {
"use strict";
-var ajax = require('web.ajax');
var core = require('web.core');
var mixins = require('web.mixins');
var rpc = require('web.rpc');
@@ -443,7 +442,7 @@ var ProxyDevice = core.Class.extend(mixins.PropertiesMixin,{
print_sale_details: function() {
var self = this;
rpc.query({model: 'report.point_of_sale.report_saledetails', method: 'get_sale_details'})
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then(function(result){
var env = {
company: self.pos.company,
diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js
index 0c1a6f566b5..939c1adc094 100644
--- a/addons/point_of_sale/static/src/js/models.js
+++ b/addons/point_of_sale/static/src/js/models.js
@@ -506,7 +506,7 @@ exports.PosModel = Backbone.Model.extend({
if (method === 'search_read') {
query = query.orderBy(order);
}
- query.exec({callback: ajax.rpc.bind(ajax)}).then(function(result){
+ query.exec({type: "ajax"}).then(function(result){
try{ // catching exceptions in model.loaded(...)
if (method === 'search_read') {
result = result.records;
@@ -551,11 +551,10 @@ exports.PosModel = Backbone.Model.extend({
var def = new $.Deferred();
var fields = _.find(this.models,function(model){ return model.model === 'res.partner'; }).fields;
var domain = [['customer','=',true],['write_date','>',this.db.get_partner_write_date()]];
- var rpcOptions = {timeout:3000, shadow: true};
rpc.query({model: 'res.partner', method: 'search_read'})
- .args([domain, fields])
- .exec({callback: ajax.rpc.bind(ajax), callbackOptions: rpcOptions})
- .then(function(partners){
+ .args([domain, fields])
+ .exec({type: "ajax", options: {timeout:3000, shadow: true}})
+ .then(function(partners){
if (self.db.add_partners(partners.records)) { // check if the partners we got were real updates
def.resolve();
} else {
@@ -891,9 +890,9 @@ exports.PosModel = Backbone.Model.extend({
})];
var rpcOptions = {timeout: timeout, shadow: !options.to_invoice};
return rpc.query({model: 'pos.order', method: 'create_from_ui'})
- .args(args)
- .exec({callback: ajax.rpc.bind(ajax), callbackOptions: rpcOptions})
- .then(function (server_ids) {
+ .args(args)
+ .exec({type: "ajax", options: rpcOptions})
+ .then(function (server_ids) {
_.each(order_ids_to_sync, function (order_id) {
self.db.remove_order(order_id);
});
diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js
index db5e45d93fc..6186eab9717 100644
--- a/addons/point_of_sale/static/src/js/screens.js
+++ b/addons/point_of_sale/static/src/js/screens.js
@@ -30,7 +30,6 @@ odoo.define('point_of_sale.screens', function (require) {
var PosBaseWidget = require('point_of_sale.BaseWidget');
var gui = require('point_of_sale.gui');
var models = require('point_of_sale.models');
-var ajax = require('web.ajax');
var core = require('web.core');
var rpc = require('web.rpc');
var utils = require('web.utils');
@@ -1212,7 +1211,7 @@ var ClientListScreenWidget = ScreenWidget.extend({
rpc.query({model: 'res.partner', method: 'create_from_ui'})
.args([fields])
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then(function(partner_id){
self.saved_client_details(partner_id);
},function(err,event){
diff --git a/addons/pos_cache/static/src/js/pos_cache.js b/addons/pos_cache/static/src/js/pos_cache.js
index 1e49b36e4c9..6598ab9a8c2 100644
--- a/addons/pos_cache/static/src/js/pos_cache.js
+++ b/addons/pos_cache/static/src/js/pos_cache.js
@@ -2,7 +2,6 @@ odoo.define('pos_cache.pos_cache', function (require) {
"use strict";
var models = require('point_of_sale.models');
-var ajax = require('web.ajax');
var core = require('web.core');
var rpc = require('web.rpc');
var _t = core._t;
@@ -34,7 +33,7 @@ models.PosModel = models.PosModel.extend({
return posmodel_super.load_server_data.apply(this, arguments).then(function () {
var records = rpc.query({model: 'pos.config', method: 'get_products_from_cache'})
.args([self.pos_session.config_id[0], product_fields, product_domain])
- .exec({callback: ajax.rpc.bind(ajax)});
+ .exec({type: "ajax"});
self.chrome.loading_message(_t('Loading') + ' product.product', 1);
return records.then(function (product) {
self.db.add_products(product);
diff --git a/addons/pos_mercury/static/src/js/pos_mercury.js b/addons/pos_mercury/static/src/js/pos_mercury.js
index 8e485bcbf4a..10007b92851 100644
--- a/addons/pos_mercury/static/src/js/pos_mercury.js
+++ b/addons/pos_mercury/static/src/js/pos_mercury.js
@@ -1,7 +1,6 @@
odoo.define('pos_mercury.pos_mercury', function (require) {
"use strict";
-var ajax = require('web.ajax');
var core = require('web.core');
var rpc = require('web.rpc');
var screens = require('point_of_sale.screens');
@@ -391,7 +390,7 @@ PaymentScreenWidget.include({
rpc.query({model: 'pos_mercury.mercury_transaction', method: 'do_payment'})
.args([transaction])
- .exec({timeout: self.server_timeout_in_ms, callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax", options: {timeout: self.server_timeout_in_ms}})
.then(function (data) {
// if not receiving a response from Mercury, we should retry
if (data === "timeout") {
@@ -549,7 +548,7 @@ PaymentScreenWidget.include({
rpc.query({model: 'pos_mercury.mercury_transaction', method: rpc_method})
.args([request_data])
- .exec({timeout: self.server_timeout_in_ms, callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax", options: {timeout: self.server_timeout_in_ms}})
.then(function (data) {
if (data === "timeout") {
self.retry_mercury_transaction(def, null, retry_nr, true, self.do_reversal, [line, is_voidsale, def, retry_nr + 1]);
diff --git a/addons/pos_restaurant/static/src/js/floors.js b/addons/pos_restaurant/static/src/js/floors.js
index 2a7653148ff..beabc66d898 100644
--- a/addons/pos_restaurant/static/src/js/floors.js
+++ b/addons/pos_restaurant/static/src/js/floors.js
@@ -6,7 +6,6 @@ var chrome = require('point_of_sale.chrome');
var gui = require('point_of_sale.gui');
var models = require('point_of_sale.models');
var screens = require('point_of_sale.screens');
-var ajax = require('web.ajax');
var core = require('web.core');
var rpc = require('web.rpc');
@@ -250,12 +249,12 @@ var TableWidget = PosBaseWidget.extend({
rpc.query({model: 'restaurant.table', method: 'create_from_ui'})
.args([serializable_table])
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then(function (table_id){
rpc.query({model: 'restaurant.table', method: 'search_read'})
.args([[['id', '=', table_id]], fields])
.withLimit(1)
- .exec({callback: ajax.rpc.bind(this)})
+ .exec({type: "ajax"})
.then(function (table){
for (var field in table) {
self.table[field] = table[field];
@@ -278,7 +277,7 @@ var TableWidget = PosBaseWidget.extend({
var self = this;
rpc.query({model: 'restaurant.table', method: 'create_from_ui'})
.args([{'active':false,'id':this.table.id}])
- .exec(ajax.rpc.bind(rpc))
+ .exec({type: "ajax"})
.then(function (table_id){
// Removing all references from the table and the table_widget in in the UI ...
for (var i = 0; i < self.pos.floors.length; i++) {
@@ -416,7 +415,7 @@ var FloorScreenWidget = screens.ScreenWidget.extend({
this.floor.background_color = background;
rpc.query({model: 'restaurant.floor', method: 'write'})
.args([[this.floor.id], {'background_color': background}])
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.fail(function (err, event){
self.gui.show_popup('error',{
'title':_t('Changes could not be saved'),
diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js
index 0b2a663cc5c..16191aa02b8 100644
--- a/addons/project/static/src/js/project.js
+++ b/addons/project/static/src/js/project.js
@@ -22,7 +22,7 @@ KanbanRecord.include({
ev.preventDefault();
var domain = [['res_model', '=', 'project.task'], ['res_id', '=', this.id], ['mimetype', 'ilike', 'image']];
- this.rpc('ir.attachment', 'search_read')
+ this._rpc('ir.attachment', 'search_read')
.withDomain(domain)
.withFields(['id', 'name'])
.exec()
diff --git a/addons/report/static/src/js/qwebactionmanager.js b/addons/report/static/src/js/qwebactionmanager.js
index 1d57b8642ea..ded094cb26e 100644
--- a/addons/report/static/src/js/qwebactionmanager.js
+++ b/addons/report/static/src/js/qwebactionmanager.js
@@ -89,7 +89,7 @@ ActionManager.include({
} else if (action.report_type === 'qweb-pdf') {
framework.blockUI();
// Before doing anything, we check the state of wkhtmltopdf on the server.
- (wkhtmltopdf_state = wkhtmltopdf_state || this.performRPC('/report/check_wkhtmltopdf')).then(function (state) {
+ (wkhtmltopdf_state = wkhtmltopdf_state || this._rpc('/report/check_wkhtmltopdf').exec()).then(function (state) {
// Display a notification to the user according to wkhtmltopdf's state.
if (WKHTMLTOPDF_MESSAGES[state]) {
self.do_notify(_t('Report'), WKHTMLTOPDF_MESSAGES[state], true);
diff --git a/addons/sale/static/src/js/sale.js b/addons/sale/static/src/js/sale.js
index ee43610dfb7..d40607c7c33 100644
--- a/addons/sale/static/src/js/sale.js
+++ b/addons/sale/static/src/js/sale.js
@@ -24,7 +24,7 @@ KanbanRecord.include({
if (isNaN(value)) {
self.do_warn(_t("Wrong value entered!"), _t("Only Integer Value should be valid."));
} else {
- self.rpc('crm.team', 'write')
+ self._rpc('crm.team', 'write')
.args([[self.id], { 'invoiced_target': value }])
.exec()
.done(function() {
diff --git a/addons/sales_team/static/src/js/sales_team_dashboard.js b/addons/sales_team/static/src/js/sales_team_dashboard.js
index 72f053497a9..449e568fa68 100644
--- a/addons/sales_team/static/src/js/sales_team_dashboard.js
+++ b/addons/sales_team/static/src/js/sales_team_dashboard.js
@@ -198,7 +198,7 @@ var SalesTeamDashboardController = KanbanController.extend({
if(isNaN(targetValue)) {
this.do_warn(_t("Wrong value entered!"), _t("Only Integer Value should be valid."));
} else {
- this.rpc('crm.lead', 'modify_target_sales_dashboard')
+ this._rpc('crm.lead', 'modify_target_sales_dashboard')
.args([targetName, parseInt(targetValue)])
.exec()
.then(this.reload.bind(this));
diff --git a/addons/web/static/src/js/apps.js b/addons/web/static/src/js/apps.js
index a1f85d6ae31..8e9818f67d6 100644
--- a/addons/web/static/src/js/apps.js
+++ b/addons/web/static/src/js/apps.js
@@ -40,7 +40,7 @@ var Apps = Widget.extend({
if (apps_client) {
return check_client_available(apps_client);
} else {
- return this.rpc('ir.module.module', 'get_apps_server')
+ return this._rpc('ir.module.module', 'get_apps_server')
.exec()
.then(function(u) {
var link = $(_.str.sprintf('', u))[0];
@@ -90,7 +90,7 @@ var Apps = Widget.extend({
});
},
'Model': function(m) {
- return this.rpc(m.model, m.method)
+ return this._rpc(m.model, m.method)
.args(m.args)
.exec()
.then(function(r) {
diff --git a/addons/web/static/src/js/chrome/action_manager.js b/addons/web/static/src/js/chrome/action_manager.js
index 8db4fab8094..fdfc33f74f5 100644
--- a/addons/web/static/src/js/chrome/action_manager.js
+++ b/addons/web/static/src/js/chrome/action_manager.js
@@ -559,11 +559,14 @@ var ActionManager = Widget.extend({
if (warm) {
this.null_action();
}
- action_loaded = this.rpc('/web/session/get_session_action', {key: state.sa}).then(function(action) {
- if (action) {
- return self.do_action(action);
- }
- });
+ action_loaded = this._rpc('/web/session/get_session_action')
+ .params({key: state.sa})
+ .exec()
+ .then(function(action) {
+ if (action) {
+ return self.do_action(action);
+ }
+ });
}
return $.when(action_loaded || null).done(function() {
@@ -832,12 +835,15 @@ var ActionManager = Widget.extend({
},
ir_actions_server: function (action, options) {
var self = this;
- return this.performRPC('/web/action/run', {
- action_id: action.id,
- context: action.context || {}
- }).then(function (action) {
- return self.do_action(action, options);
- });
+ return this._rpc('/web/action/run')
+ .params({
+ action_id: action.id,
+ context: action.context || {}
+ })
+ .exec()
+ .then(function (action) {
+ return self.do_action(action, options);
+ });
},
ir_actions_report_xml: function(action, options) {
var self = this;
diff --git a/addons/web/static/src/js/chrome/search_inputs.js b/addons/web/static/src/js/chrome/search_inputs.js
index 6855520a39b..41676b98e2e 100644
--- a/addons/web/static/src/js/chrome/search_inputs.js
+++ b/addons/web/static/src/js/chrome/search_inputs.js
@@ -426,7 +426,7 @@ var ManyToOneField = CharField.extend({
args = [];
}
}
- return this.rpc(this.attrs.relation, 'name_search')
+ return this._rpc(this.attrs.relation, 'name_search')
.kwargs({
name: needle,
args: args,
@@ -458,7 +458,7 @@ var ManyToOneField = CharField.extend({
}
var context = pyeval.eval('contexts', [this.searchview.dataset.get_context()]);
- return this.rpc(this.attrs.relation, 'name_get')
+ return this._rpc(this.attrs.relation, 'name_get')
.args([value])
.withContext(context)
.exec()
diff --git a/addons/web/static/src/js/chrome/sidebar.js b/addons/web/static/src/js/chrome/sidebar.js
index b57e94e422c..41e45b6e148 100644
--- a/addons/web/static/src/js/chrome/sidebar.js
+++ b/addons/web/static/src/js/chrome/sidebar.js
@@ -148,23 +148,26 @@ var Sidebar = Widget.extend({
new Context(
sidebar_eval_context, active_ids_context));
- self.rpc("/web/action/load", {
- action_id: item.action.id,
- context: new Context(
- dataset.get_context(), active_ids_context).eval()
- }).done(function(result) {
- result.context = new Context(
- result.context || {}, active_ids_context)
- .set_eval_context(c);
- result.flags = result.flags || {};
- result.flags.new_window = true;
- self.do_action(result, {
- on_close: function() {
- // reload view
- self.getParent().reload();
- },
+ self._rpc("/web/action/load")
+ .params({
+ action_id: item.action.id,
+ context: new Context(
+ dataset.get_context(), active_ids_context).eval()
+ })
+ .exec()
+ .done(function(result) {
+ result.context = new Context(
+ result.context || {}, active_ids_context)
+ .set_eval_context(c);
+ result.flags = result.flags || {};
+ result.flags.new_window = true;
+ self.do_action(result, {
+ on_close: function() {
+ // reload view
+ self.getParent().reload();
+ },
+ });
});
- });
});
});
},
diff --git a/addons/web/static/src/js/chrome/user_menu.js b/addons/web/static/src/js/chrome/user_menu.js
index 8a33260432b..21ecac479b1 100644
--- a/addons/web/static/src/js/chrome/user_menu.js
+++ b/addons/web/static/src/js/chrome/user_menu.js
@@ -59,12 +59,15 @@ var UserMenu = Widget.extend({
var self = this;
this.trigger_up('clear_uncommitted_changes', {
callback: function () {
- self.performRPC('/web/session/account').then(function (url) {
- framework.redirect(url);
- }).fail(function (result, ev){
- ev.preventDefault();
- framework.redirect('https://accounts.odoo.com/account');
- });
+ self._rpc('/web/session/account')
+ .exec()
+ .then(function (url) {
+ framework.redirect(url);
+ })
+ .fail(function (result, ev){
+ ev.preventDefault();
+ framework.redirect('https://accounts.odoo.com/account');
+ });
},
});
},
@@ -90,12 +93,15 @@ var UserMenu = Widget.extend({
var session = this.getSession();
this.trigger_up('clear_uncommitted_changes', {
callback: function () {
- self.performRPC("/web/action/load", {
- action_id: "base.action_res_users_my",
- }).done(function (result) {
- result.res_id = session.uid;
- self.do_action(result);
- });
+ self._rpc("/web/action/load")
+ .params({
+ action_id: "base.action_res_users_my",
+ })
+ .exec()
+ .done(function (result) {
+ result.res_id = session.uid;
+ self.do_action(result);
+ });
},
});
},
diff --git a/addons/web/static/src/js/chrome/web_client.js b/addons/web/static/src/js/chrome/web_client.js
index f668676673c..48666e2bd16 100644
--- a/addons/web/static/src/js/chrome/web_client.js
+++ b/addons/web/static/src/js/chrome/web_client.js
@@ -65,12 +65,12 @@ return AbstractWebClient.extend({
logo_edit: function(ev) {
var self = this;
ev.preventDefault();
- this.rpc("res.users", "read")
+ this._rpc("res.users", "read")
.args([[session.uid], ["company_id"]])
.exec()
.then(function(data) {
- self.rpc("/web/action/load")
- .kwargs({ action_id: "base.action_res_company_form" })
+ self._rpc("/web/action/load")
+ .params({ action_id: "base.action_res_company_form" })
.exec()
.done(function(result) {
result.res_id = data[0].company_id[0];
@@ -99,7 +99,7 @@ return AbstractWebClient.extend({
var state = $.bbq.getState(true);
if (_.isEmpty(state) || state.action === "login") {
self.menu.is_bound.done(function() {
- self.rpc("res.users", "read")
+ self._rpc("res.users", "read")
.args([[session.uid], ["action_id"]])
.exec()
.done(function(result) {
diff --git a/addons/web/static/src/js/core/widget.js b/addons/web/static/src/js/core/widget.js
index e47586e9a17..82e8041c98a 100644
--- a/addons/web/static/src/js/core/widget.js
+++ b/addons/web/static/src/js/core/widget.js
@@ -34,7 +34,7 @@ var ServicesMixin = require('web.ServicesMixin');
*
* // if you have some asynchronous operations, it's a good idea to return
* // a promise in start()
- * var promise = this.rpc(...);
+ * var promise = this._rpc(...);
* return promise;
* }
* });
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index 17e4e33f20e..ebe853a6a96 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -1298,9 +1298,9 @@ var FieldDomain = AbstractField.extend({
// ... then query the model to get the number of matched record if valid
var self = this;
return def.then(function () {
- return self.rpc(self.domainModel, "search_count")
+ return self._rpc(self.domainModel, "search_count")
.args([domain])
- .kwargs({context: self.record.getContext({fieldName: self.name})})
+ .withContext(self.record.getContext({fieldName: self.name}))
.exec()
.then(function (data) {
self._isValidForModel = true;
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index e150405e3e3..9451a43eb43 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -197,7 +197,7 @@ var FieldMany2One = AbstractField.extend({
var self = this;
var slowCreate = this._searchCreatePopup.bind(this, "form", false, this._createContext(name));
if (this.nodeOptions.quick_create) {
- this.rpc(this.field.relation, "name_create")
+ this._rpc(this.field.relation, "name_create")
.args([name])
.kwargs({context: this.record.getContext({fieldName: this.name})})
.exec()
@@ -267,7 +267,7 @@ var FieldMany2One = AbstractField.extend({
domain.push(['id', 'not in', blacklisted_ids]);
}
- this.rpc(this.field.relation, "name_search")
+ this._rpc(this.field.relation, "name_search")
.kwargs({
name: search_val,
args: domain,
@@ -294,7 +294,7 @@ var FieldMany2One = AbstractField.extend({
values.push({
label: _t("Search More..."),
action: function () {
- self.rpc(self.field.relation, "name_search")
+ self._rpc(self.field.relation, "name_search")
.kwargs({
name: search_val,
args: domain,
@@ -385,7 +385,7 @@ var FieldMany2One = AbstractField.extend({
if (this.mode === 'readonly' && !this.nodeOptions.no_open) {
event.preventDefault();
event.stopPropagation();
- this.rpc(this.field.relation, 'get_formview_action')
+ this._rpc(this.field.relation, 'get_formview_action')
.args([[this.value.res_id]])
.withContext(this.record.getContext({fieldName: this.name}))
.exec()
@@ -404,7 +404,7 @@ var FieldMany2One = AbstractField.extend({
}
var self = this;
var context = this.record.getContext({fieldName: this.name});
- this.rpc(this.field.relation, 'get_formview_id')
+ this._rpc(this.field.relation, 'get_formview_id')
.args([[this.value.res_id]])
.withContext(context)
.exec()
diff --git a/addons/web/static/src/js/fields/upgrade_fields.js b/addons/web/static/src/js/fields/upgrade_fields.js
index bbfd9b5b5d1..a4246983dd1 100644
--- a/addons/web/static/src/js/fields/upgrade_fields.js
+++ b/addons/web/static/src/js/fields/upgrade_fields.js
@@ -37,9 +37,12 @@ var AbstractFieldUpgrade = {
*/
_confirmUpgrade: function () {
var args = [[["share", "=", false]]];
- return this.performModelRPC('res.users', 'search_count', args).then(function (data) {
- framework.redirect("https://www.odoo.com/odoo-enterprise/upgrade?num_users=" + data);
- });
+ return this._rpc('res.users', 'search_count')
+ .args(args)
+ .exec()
+ .then(function (data) {
+ framework.redirect("https://www.odoo.com/odoo-enterprise/upgrade?num_users=" + data);
+ });
},
/**
* This function is meant to be overriden to insert the 'Enterprise' label
diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js
index f04cac96400..04c80764e00 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -199,7 +199,7 @@ var BasicModel = AbstractModel.extend({
deleteRecords: function (recordIds, modelName, parentID) {
var self = this;
var records = _.map(recordIds, function (id) { return self.localData[id]; });
- return this.rpc(modelName, 'unlink')
+ return this._rpc(modelName, 'unlink')
.args([_.pluck(records, 'res_id')])
.withContext(session.user_context) // todo: combine with view context
.exec()
@@ -235,7 +235,7 @@ var BasicModel = AbstractModel.extend({
duplicateRecord: function (recordID) {
var self = this;
var record = this.localData[recordID];
- return this.rpc(record.model, 'copy')
+ return this._rpc(record.model, 'copy')
.args([record.data.id])
.withContext(this._getContext(record))
.exec()
@@ -450,7 +450,7 @@ var BasicModel = AbstractModel.extend({
var self = this;
var fields_key = _.without(params.fieldNames, '__last_update');
- return this.rpc(modelName, 'default_get')
+ return this._rpc(modelName, 'default_get')
.args([fields_key])
.withContext(params.context)
.exec()
@@ -818,7 +818,7 @@ var BasicModel = AbstractModel.extend({
// in the case of a write, only perform the RPC if there are changes to save
if (method === 'create' || Object.keys(changes).length) {
var args = method === 'write' ? [[record.data.id], changes] : [changes];
- return self.rpc(record.model, method)
+ return self._rpc(record.model, method)
.args(args)
.withContext(session.user_context) // todo: combine with view context
.exec()
@@ -901,7 +901,7 @@ var BasicModel = AbstractModel.extend({
var resIDs = _.map(recordIDs, function (recordID) {
return self.localData[recordID].res_id;
});
- return this.rpc(parent.model, 'write')
+ return this._rpc(parent.model, 'write')
.args([resIDs, { active: value }])
.exec()
.then(this.reload.bind(this, parentID));
@@ -959,7 +959,7 @@ var BasicModel = AbstractModel.extend({
var def;
if (!('display_name' in rel_data)) {
var field = record.fields[fieldName];
- def = this.rpc(field.relation, 'name_get')
+ def = this._rpc(field.relation, 'name_get')
.args([data.id])
.withContext(record.context)
.exec()
@@ -1011,7 +1011,7 @@ var BasicModel = AbstractModel.extend({
fields = fields[0];
}
return this.mutex.exec(function () {
- return self.rpc(record.model, 'onchange')
+ return self._rpc(record.model, 'onchange')
.args([idList, currentData, fields, onchange_spec, context])
.exec()
.then(function (result) {
@@ -1161,7 +1161,7 @@ var BasicModel = AbstractModel.extend({
// _changes so this is a very specific case)
// this could be optimized by registering the fetched records in the list's _cache
// so that if a record is removed and then re-added, it won't be fetched twice
- var def = this.rpc(list.model, 'read')
+ var def = this._rpc(list.model, 'read')
.args([_.pluck(data, 'id'), list.fieldNames])
.exec()
.then(function (records) {
@@ -1257,7 +1257,7 @@ var BasicModel = AbstractModel.extend({
_fetchMany2OneGroup: function (group) {
var ids = _.uniq(_.pluck(group, 'res_id'));
- return this.rpc(group[0].model, 'name_get')
+ return this._rpc(group[0].model, 'name_get')
.args([ids])
.withContext(group[0].context)
.exec()
@@ -1281,7 +1281,7 @@ var BasicModel = AbstractModel.extend({
model = many2oneRecord.model;
return many2oneRecord.res_id;
});
- return this.rpc(model, 'name_get')
+ return this._rpc(model, 'name_get')
.args([ids])
.withContext(list.context)
.exec()
@@ -1303,7 +1303,7 @@ var BasicModel = AbstractModel.extend({
var self = this;
fieldNames = fieldNames || _.uniq(record.fieldNames.concat(['display_name']));
var oldData = record.data;
- return this.rpc(record.model, 'read')
+ return this._rpc(record.model, 'read')
.args([[record.res_id], fieldNames])
// .withContext({ bin_size: true }) // FIXME: when editing a subrecord in the partner form view, it tries to write the bin_size on the image field
.exec()
@@ -1495,7 +1495,7 @@ var BasicModel = AbstractModel.extend({
}
// step 2: fetch data from server
- return this.rpc(field.relation, 'read')
+ return this._rpc(field.relation, 'read')
.args([ids, _.keys(field.relatedFields)])
.withContext({}) // FIXME
.exec()
@@ -1817,13 +1817,13 @@ var BasicModel = AbstractModel.extend({
});
var domain = Domain.prototype.stringToArray(field.domain || [], field_values);
var fold_field = pyeval.py_eval(attrs.options || '{}').fold_field;
- var fetch_status_information = self.rpc(field.relation, 'search_read')
+ var fetch_status_information = self._rpc(field.relation, 'search_read')
.withFields(['id'].concat(fold_field ? [fold_field] : []))
.withDomain(domain)
.exec()
.then(function (result) {
var ids = _.pluck(result.records, 'id');
- return self.rpc(field.relation, 'name_get')
+ return self._rpc(field.relation, 'name_get')
.args([ids])
.withContext(self._getContext(record, {fieldName: name}))
.exec()
@@ -1841,7 +1841,7 @@ var BasicModel = AbstractModel.extend({
}
if (field.__always_reload) {
if (record.data[name] instanceof Array) {
- defs.push(self.rpc(field.relation, 'name_get')
+ defs.push(self._rpc(field.relation, 'name_get')
.args([record.data[name][0]])
.withContext(self._getContext(record, {fieldName: name}))
.exec()
@@ -1851,7 +1851,7 @@ var BasicModel = AbstractModel.extend({
}
}
if (field.__fetch_selection && !self.many2ones[field.relation]) {
- var fetchSelection = self.rpc(field.relation, 'name_search')
+ var fetchSelection = self._rpc(field.relation, 'name_search')
.args(['', field.domain])
.exec()
.then(function (result) {
@@ -1860,7 +1860,7 @@ var BasicModel = AbstractModel.extend({
defs.push(fetchSelection);
}
if (field.__fetch_many2manys) {
- var fetchMany2Manys = self.rpc(field.relation, 'name_search')
+ var fetchMany2Manys = self._rpc(field.relation, 'name_search')
.args(['', field.domain])
.exec()
.then(function (result) {
@@ -1885,7 +1885,7 @@ var BasicModel = AbstractModel.extend({
_readGroup: function (list) {
var self = this;
var fields = _.uniq(list.fieldNames.concat(list.groupedBy));
- return this.rpc(list.model, 'read_group')
+ return this._rpc(list.model, 'read_group')
.withFields(fields)
.withContext(list.context)
.groupBy(list.groupedBy)
@@ -1969,7 +1969,7 @@ var BasicModel = AbstractModel.extend({
}
}
if (missingIds.length) {
- def = this.rpc(list.model, 'read')
+ def = this._rpc(list.model, 'read')
.args([missingIds, list.fieldNames])
.withContext({}) // FIXME
.exec();
@@ -2029,7 +2029,7 @@ var BasicModel = AbstractModel.extend({
*/
_searchReadUngroupedList: function (list) {
var self = this;
- return this.rpc(list.model, 'search_read')
+ return this._rpc(list.model, 'search_read')
.withFields(list.fieldNames)
.withDomain(list.domain || [])
.withLimit(list.limit)
diff --git a/addons/web/static/src/js/views/calendar/calendar_controller.js b/addons/web/static/src/js/views/calendar/calendar_controller.js
index 5f1b37a4a32..4e0ace6926b 100644
--- a/addons/web/static/src/js/views/calendar/calendar_controller.js
+++ b/addons/web/static/src/js/views/calendar/calendar_controller.js
@@ -103,7 +103,9 @@ var CalendarController = AbstractController.extend({
_updateRecord: function (record) {
// Cannot modify actual name yet
var data = _.omit(this.model.calendarEventToRecord(record), 'name');
- this.performModelRPC(this.model.modelName, 'write', [record.id, data])
+ this._rpc(this.model.modelName, 'write')
+ .args([record.id, data])
+ .exec()
.then(this.reload.bind(this));
},
@@ -229,7 +231,9 @@ var CalendarController = AbstractController.extend({
click: function () {
Dialog.confirm(this, _t("Are you sure you want to delete this record ?"), {
confirm_callback: function () {
- self.performModelRPC(self.modelName, 'unlink', [id])
+ self._rpc(self.modelName, 'unlink')
+ .args([id])
+ .exec()
.then(function () {
self.dialog.destroy();
self.reload();
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 1d25fbb839f..6617854e9ad 100644
--- a/addons/web/static/src/js/views/calendar/calendar_model.js
+++ b/addons/web/static/src/js/views/calendar/calendar_model.js
@@ -127,9 +127,10 @@ return AbstractModel.extend({
* @returns
*/
deleteRecords: function (ids, model) {
- return this.performModelRPC(model, 'unlink', [ids], {
- context: session.user_context, // todo: combine with view context
- });
+ return this._rpc(model, 'unlink')
+ .args([ids])
+ .withContext(session.user_context) // todo: combine with view context
+ .exec();
},
/**
* @override
@@ -166,8 +167,8 @@ return AbstractModel.extend({
if (!this.preload_def) {
this.preload_def = $.Deferred();
$.when(
- this.performModelRPC(this.modelName, 'check_access_rights', ["write", false]),
- this.performModelRPC(this.modelName, 'check_access_rights', ["create", false]))
+ this._rpc(this.modelName, 'check_access_rights').args(["write", false]).exec(),
+ this._rpc(this.modelName, 'check_access_rights').args(["create", false]).exec())
.then(function (write, create) {
self.write_right = write;
self.create_right = create;
@@ -362,18 +363,18 @@ return AbstractModel.extend({
var defs = _.map(this.data.filters, this._loadFilter.bind(this));
return $.when.apply($, defs).then(function () {
- return self.performRPC('/web/dataset/search_read', {
- model: self.modelName,
- context: self.data.context,
- domain: self.data.domain.concat(self._getRangeDomain()).concat(self._getFilterDomain()),
- fields: self.fieldNames,
- }).then(function (events) {
- self.data.data = _.map(events.records, self._recordToCalendarEvent.bind(self));
- return $.when(
- self._loadColors(self.data, self.data.data),
- self._loadRecordsToFilters(self.data, self.data.data)
- );
- });
+ return self._rpc(self.modelName, 'search_read')
+ .withContext(self.data.context)
+ .withFields(self.fieldNames)
+ .withDomain(self.data.domain.concat(self._getRangeDomain()).concat(self._getFilterDomain()))
+ .exec()
+ .then(function (events) {
+ self.data.data = _.map(events.records, self._recordToCalendarEvent.bind(self));
+ return $.when(
+ self._loadColors(self.data, self.data.data),
+ self._loadRecordsToFilters(self.data, self.data.data)
+ );
+ });
});
},
/**
@@ -402,54 +403,54 @@ return AbstractModel.extend({
}
var field = this.fields[filter.fieldName];
- return this.performRPC('/web/dataset/search_read', {
- model: filter.write_model,
- domain: [["user_id", "=", session.uid]],
- fields: [filter.write_field]
- }).then(function (res) {
- var records = _.map(res.records, function (record) {
- var _value = record[filter.write_field];
- var value = _.isArray(_value) ? _value[0] : _value;
- var f = _.find(filter.filters, function (f) {return f.value === value;});
- var formater = field_utils.format[_.contains(['many2many', 'one2many'], field.type) ? 'many2one' : field.type];
- return {
- 'id': record.id,
- 'value': value,
- 'label': formater(_value, field),
- 'active': !f || f.active,
- };
- });
- records.sort(function (f1,f2) {
- return _.string.naturalCmp(f2.label, f1.label);
- });
-
- // add my profile
- if (field.relation === 'res.partner' || field.relation === 'res.users') {
- var value = field.relation === 'res.partner' ? session.partner_id : session.uid;
- var me = _.find(records, function (record) {
- return record.value === value;
- });
- if (me) {
- records.splice(records.indexOf(me), 1);
- } else {
+ return this._rpc(filter.write_model, 'search_read')
+ .withDomain([["user_id", "=", session.uid]])
+ .withFields([filter.write_field])
+ .exec()
+ .then(function (res) {
+ var records = _.map(res.records, function (record) {
+ var _value = record[filter.write_field];
+ var value = _.isArray(_value) ? _value[0] : _value;
var f = _.find(filter.filters, function (f) {return f.value === value;});
- me = {
+ var formater = field_utils.format[_.contains(['many2many', 'one2many'], field.type) ? 'many2one' : field.type];
+ return {
+ 'id': record.id,
'value': value,
- 'label': session.name + _t(" [Me]"),
+ 'label': formater(_value, field),
'active': !f || f.active,
};
- }
- records.unshift(me);
- }
- // add all selection
- records.push({
- 'value': 'all',
- 'label': field.relation === 'res.partner' || field.relation === 'res.users' ? _t("Everybody's calendars") : _t("Everything"),
- 'active': filter.all,
- });
+ });
+ records.sort(function (f1,f2) {
+ return _.string.naturalCmp(f2.label, f1.label);
+ });
- filter.filters = records;
- });
+ // add my profile
+ if (field.relation === 'res.partner' || field.relation === 'res.users') {
+ var value = field.relation === 'res.partner' ? session.partner_id : session.uid;
+ var me = _.find(records, function (record) {
+ return record.value === value;
+ });
+ if (me) {
+ records.splice(records.indexOf(me), 1);
+ } else {
+ var f = _.find(filter.filters, function (f) {return f.value === value;});
+ me = {
+ 'value': value,
+ 'label': session.name + _t(" [Me]"),
+ 'active': !f || f.active,
+ };
+ }
+ records.unshift(me);
+ }
+ // add all selection
+ records.push({
+ 'value': 'all',
+ 'label': field.relation === 'res.partner' || field.relation === 'res.users' ? _t("Everybody's calendars") : _t("Everything"),
+ 'active': filter.all,
+ });
+
+ filter.filters = records;
+ });
},
/**
* @param {any} element
@@ -509,9 +510,12 @@ return AbstractModel.extend({
var defs = [];
_.each(to_read, function (ids, model) {
- defs.push(self.performModelRPC(model, 'name_get', [_.uniq(ids)]).then(function (res) {
- to_read[model] = _.object(res);
- }));
+ defs.push(self._rpc(model, 'name_get')
+ .args([_.uniq(ids)])
+ .exec()
+ .then(function (res) {
+ to_read[model] = _.object(res);
+ }));
});
return $.when.apply($, defs).then(function () {
_.each(self.data.filters, function (filter) {
diff --git a/addons/web/static/src/js/views/calendar/calendar_quick_create.js b/addons/web/static/src/js/views/calendar/calendar_quick_create.js
index 326c36ea9eb..008f2d74e04 100644
--- a/addons/web/static/src/js/views/calendar/calendar_quick_create.js
+++ b/addons/web/static/src/js/views/calendar/calendar_quick_create.js
@@ -122,8 +122,10 @@ var QuickCreate = Dialog.extend({
*/
_quickCreate: function (data, options) {
var self = this;
- return this.performModelRPC(this.modelName, 'create',
- [$.extend({}, this.data_template, data)], _.pick(options, 'context'))
+ return this._rpc(this.modelName, 'create')
+ .args([$.extend({}, this.data_template, data)])
+ .withContext(_.pick(options, 'context'))
+ .exec()
.then(function (id) {
self.trigger('added', id);
self.$input.val("");
diff --git a/addons/web/static/src/js/views/calendar/calendar_renderer.js b/addons/web/static/src/js/views/calendar/calendar_renderer.js
index adea44e8f96..9095e5c13f7 100644
--- a/addons/web/static/src/js/views/calendar/calendar_renderer.js
+++ b/addons/web/static/src/js/views/calendar/calendar_renderer.js
@@ -92,7 +92,9 @@ var SidebarFilter = Widget.extend(FieldManagerMixin, {
var self = this;
event.stopPropagation();
var value = event.data.changes[this.write_field].id;
- this.model.performModelRPC(this.write_model, 'create', [{'user_id': session.uid,'partner_id': value,}])
+ this._rpc(this.write_model, 'create')
+ .args([{'user_id': session.uid,'partner_id': value,}])
+ .exec()
.then(function () {
self.trigger_up('changeFilter', {
'fieldName': self.fieldName,
@@ -117,7 +119,9 @@ var SidebarFilter = Widget.extend(FieldManagerMixin, {
var $filter = $(e.currentTarget).closest('.o_calendar_filter_item');
Dialog.confirm(this, _t("Do you really want to delete this filter from favorites ?"), {
confirm_callback: function () {
- self.performModelRPC(self.write_model, 'unlink', [[$filter.data('id')]])
+ self._rpc(self.write_model, 'unlink')
+ .args([[$filter.data('id')]])
+ .exec()
.then(function () {
self.trigger_up('changeFilter', {
'fieldName': self.fieldName,
diff --git a/addons/web/static/src/js/views/graph/graph_model.js b/addons/web/static/src/js/views/graph/graph_model.js
index 73578f5c3bc..7bf9757a255 100644
--- a/addons/web/static/src/js/views/graph/graph_model.js
+++ b/addons/web/static/src/js/views/graph/graph_model.js
@@ -130,13 +130,14 @@ return AbstractModel.extend({
if (this.chart.measure !== '__count__') {
fields = fields.concat(this.chart.measure);
}
- return this.performModelRPC(this.modelName, 'read_group', [], {
- context: this.chart.context,
- domain: this.chart.domain,
- fields: fields,
- groupby: this.chart.groupedBy,
- lazy: false,
- }).then(this._processData.bind(this));
+ return this._rpc(this.modelName, 'read_group')
+ .withContext(this.chart.context)
+ .withDomain(this.chart.domain)
+ .withFields(fields)
+ .groupBy(this.chart.groupedBy)
+ .lazy(false)
+ .exec()
+ .then(this._processData.bind(this));
},
/**
* Since read_group is insane and returns its result on different keys
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 c51090e1e12..0c7a7f5ee8b 100644
--- a/addons/web/static/src/js/views/kanban/kanban_controller.js
+++ b/addons/web/static/src/js/views/kanban/kanban_controller.js
@@ -302,7 +302,7 @@ var KanbanController = BasicController.extend({
}
data.context['default_' + data.groupedBy[0]] = column.id;
- this.rpc(data.model, "name_create")
+ this._rpc(data.model, "name_create")
.args([event.data.value])
.withContext(data.context)
.exec()
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 1448ea35ca7..780039edacc 100644
--- a/addons/web/static/src/js/views/kanban/kanban_model.js
+++ b/addons/web/static/src/js/views/kanban/kanban_model.js
@@ -77,11 +77,9 @@ return BasicModel.extend({
var data = self.localData[parent_id];
var def;
if (data.fields.sequence) {
- def = this.performRPC('/web/dataset/resequence', {
- model: modelName,
- ids: res_ids,
- // fixme: correctly handle context
- });
+ def = this._rpc('/web/dataset/resequence')
+ .params({model: modelName, ids: res_ids})
+ .exec();
}
return $.when(def).then(function () {
data.data = _.sortBy(data.data, function (d) {
@@ -98,7 +96,7 @@ return BasicModel.extend({
if (!groupByField || groupByField.type !== 'many2one') {
return $.Deferred().reject(); // only supported when grouped on m2o
}
- return this.rpc(groupByField.relation, 'name_create')
+ return this._rpc(groupByField.relation, 'name_create')
.args([name])
.withContext(parent.context) // todo: combine with view context
.exec()
diff --git a/addons/web/static/src/js/views/pivot/pivot_model.js b/addons/web/static/src/js/views/pivot/pivot_model.js
index 8683a6adbce..f1998e01e1a 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -82,7 +82,7 @@ var PivotModel = AbstractModel.extend({
}
return $.when.apply(null, groupbys.map(function (groupBy) {
- return self.rpc(self.modelName, 'read_group')
+ return self._rpc(self.modelName, 'read_group')
.withContext(self.data.context)
.withDomain(header.domain.length ? header.domain : self.data.domain)
.withFields(_.map(fields, function (field) { return field.split(':')[0]; }))
@@ -513,7 +513,7 @@ var PivotModel = AbstractModel.extend({
}
return $.when.apply(null, groupBys.map(function (groupBy) {
- return self.rpc(self.modelName, 'read_group')
+ return self._rpc(self.modelName, 'read_group')
.withContext(self.data.context)
.withDomain(self.data.domain)
.withFields(_.map(fields, function (field) { return field.split(':')[0]; }))
diff --git a/addons/web/static/src/js/widgets/change_password.js b/addons/web/static/src/js/widgets/change_password.js
index 56f9603a310..c1c9c4dddea 100644
--- a/addons/web/static/src/js/widgets/change_password.js
+++ b/addons/web/static/src/js/widgets/change_password.js
@@ -31,15 +31,18 @@ var ChangePassword = Widget.extend({
self.$el.parents('.modal').modal('hide');
});
$button.eq(0).click(function () {
- self.performRPC('/web/session/change_password', {
- fields: $('form[name=change_password_form]').serializeArray(),
- }).done(function (result) {
- if (result.error) {
- self._display_error(result);
- } else {
- self.do_action('logout');
- }
- });
+ self._rpc('/web/session/change_password')
+ .params({
+ fields: $('form[name=change_password_form]').serializeArray()
+ })
+ .exec()
+ .done(function (result) {
+ if (result.error) {
+ self._display_error(result);
+ } else {
+ self.do_action('logout');
+ }
+ });
});
},
diff --git a/addons/web/static/src/js/widgets/data_export.js b/addons/web/static/src/js/widgets/data_export.js
index b4ae2023684..dbe4c4d3d3c 100644
--- a/addons/web/static/src/js/widgets/data_export.js
+++ b/addons/web/static/src/js/widgets/data_export.js
@@ -218,29 +218,32 @@ var DataExport = Dialog.extend({
this.$fields_list = this.$('.o_fields_list');
this.$import_compat_radios = this.$('.o_import_compat input');
- waitFor.push(this.rpc('/web/export/formats', {}).then(do_setup_export_formats));
+ waitFor.push(this._rpc('/web/export/formats').exec().then(do_setup_export_formats));
var got_fields = new $.Deferred();
this.$import_compat_radios.change(function(e) {
self.$('.o_field_tree_structure').remove();
- self.rpc("/web/export/get_fields", {
- model: self.dataset.model,
- import_compat: !!$(e.target).val(),
- }).done(function (records) {
- var compatible_fields = _.map(records, function (record) {return record.id});
- self.$fields_list
- .find('option')
- .filter(function () {
- var option_field = $(this).attr('value');
- if (compatible_fields.indexOf(option_field) === -1) {
- return true;
- }
- })
- .remove();
- got_fields.resolve();
- self.on_show_data(records);
- });
+ self._rpc("/web/export/get_fields")
+ .params({
+ model: self.dataset.model,
+ import_compat: !!$(e.target).val(),
+ })
+ .exec()
+ .done(function (records) {
+ var compatible_fields = _.map(records, function (record) {return record.id});
+ self.$fields_list
+ .find('option')
+ .filter(function () {
+ var option_field = $(this).attr('value');
+ if (compatible_fields.indexOf(option_field) === -1) {
+ return true;
+ }
+ })
+ .remove();
+ got_fields.resolve();
+ self.on_show_data(records);
+ });
}).eq(0).change();
waitFor.push(got_fields);
@@ -296,10 +299,13 @@ var DataExport = Dialog.extend({
self.$fields_list.empty();
var export_id = self.$('.o_exported_lists_select option:selected').val();
if(export_id) {
- self.rpc('/web/export/namelist', {
- model: self.dataset.model,
- export_id: parseInt(export_id, 10),
- }).then(do_load_export_field);
+ self._rpc('/web/export/namelist')
+ .params({
+ model: self.dataset.model,
+ export_id: parseInt(export_id, 10),
+ })
+ .exec()
+ .then(do_load_export_field);
}
});
self.$('.o_delete_exported_list').click(function() {
@@ -341,17 +347,20 @@ var DataExport = Dialog.extend({
if(!record.loaded) {
var self = this;
- this.rpc("/web/export/get_fields", {
- model: model,
- prefix: prefix,
- parent_name: name,
- import_compat: !!this.$import_compat_radios.filter(':checked').val(),
- parent_field_type : record['field_type'],
- exclude: exclude_fields
- }).done(function(results) {
- record.loaded = true;
- self.on_show_data(results, record.id);
- });
+ this._rpc("/web/export/get_fields")
+ .params({
+ model: model,
+ prefix: prefix,
+ parent_name: name,
+ import_compat: !!this.$import_compat_radios.filter(':checked').val(),
+ parent_field_type : record['field_type'],
+ exclude: exclude_fields
+ })
+ .exec()
+ .done(function(results) {
+ record.loaded = true;
+ self.on_show_data(results, record.id);
+ });
} else {
this.show_content(record.id);
}
diff --git a/addons/web/static/src/js/widgets/debug_manager.js b/addons/web/static/src/js/widgets/debug_manager.js
index 59becd8faea..697572257f8 100644
--- a/addons/web/static/src/js/widgets/debug_manager.js
+++ b/addons/web/static/src/js/widgets/debug_manager.js
@@ -63,9 +63,13 @@ var DebugManager = Widget.extend({
// whether the current user is an administrator
this._is_admin = session.is_system;
return $.when(
- this.performModelRPC('res.users', 'check_access_rights', {operation: 'write', raise_exception: false}),
+ this._rpc('res.users', 'check_access_rights')
+ .kwargs({operation: 'write', raise_exception: false})
+ .exec(),
session.user_has_group('base.group_no_one'),
- this.performModelRPC('ir.model.data', 'xmlid_to_res_id', {xmlid: 'base.group_no_one'}),
+ this._rpc('ir.model.data', 'xmlid_to_res_id')
+ .kwargs({xmlid: 'base.group_no_one'})
+ .exec(),
this._super()
).then(function (can_write_user, has_group_no_one, group_no_one_id) {
this._features_group = can_write_user && group_no_one_id;
@@ -161,7 +165,12 @@ var DebugManager = Widget.extend({
title: _t('Select a view'),
disable_multiple_selection: true,
on_selected: function (element_ids) {
- self.performModelRPC('ir.ui.view', [[['id', '=', element_ids[0]]], ['name', 'model', 'type']], {limit: 1}).then(function (view) {
+ self._rpc('ir.ui.view', 'search_read')
+ .withDomain([['id', '=', element_ids[0]]])
+ .withFields(['name', 'model', 'type'])
+ .withLimit(1)
+ .exec()
+ .then(function (view) {
self.do_action({
type: 'ir.actions.act_window',
name: view.name,
@@ -219,16 +228,19 @@ DebugManager.include({
get_view_fields: function () {
var self = this;
var model = this._action.res_model;
- this.performModelRPC(model, 'fields_get', [], {
- attributes: ['string', 'searchable', 'required', 'readonly', 'type', 'store', 'sortable', 'relation', 'help']
- }).done(function (fields) {
- new Dialog(self, {
- title: _.str.sprintf(_t("Fields of %s"), model),
- $content: $(QWeb.render('WebClient.DebugManager.Action.Fields', {
- fields: fields
- }))
- }).open();
- });
+ this._rpc(model, 'fields_get')
+ .kwargs({
+ attributes: ['string', 'searchable', 'required', 'readonly', 'type', 'store', 'sortable', 'relation', 'help']
+ })
+ .exec()
+ .done(function (fields) {
+ new Dialog(self, {
+ title: _.str.sprintf(_t("Fields of %s"), model),
+ $content: $(QWeb.render('WebClient.DebugManager.Action.Fields', {
+ fields: fields
+ }))
+ }).open();
+ });
},
manage_filters: function () {
this.do_action({
@@ -254,8 +266,10 @@ DebugManager.include({
});
},
translate: function() {
- var model = this._action.res_model;
- this.performModelRPC("ir.translation", 'get_technical_translations', [model]).then(this.do_action);
+ this._rpc("ir.translation", 'get_technical_translations')
+ .args([this._action.res_model])
+ .exec()
+ .then(this.do_action);
}
});
@@ -269,10 +283,12 @@ DebugManager.include({
this._can_edit_views = false;
return $.when(
this._super(),
- this.performModelRPC('ir.ui.view', 'check_access_rights', {operation: 'write', raise_exception: false})
- .then(function (ar) {
- this._can_edit_views = ar;
- }.bind(this))
+ this._rpc('ir.ui.view', 'check_access_rights')
+ .kwargs({operation: 'write', raise_exception: false})
+ .exec()
+ .then(function (ar) {
+ this._can_edit_views = ar;
+ }.bind(this))
);
},
update: function (tag, descriptor, widget) {
diff --git a/addons/web/static/src/js/widgets/model_field_selector.js b/addons/web/static/src/js/widgets/model_field_selector.js
index a1fb3cc5c4b..41433253499 100644
--- a/addons/web/static/src/js/widgets/model_field_selector.js
+++ b/addons/web/static/src/js/widgets/model_field_selector.js
@@ -317,7 +317,7 @@ var ModelFieldSelector = Widget.extend({
_getModelFieldsFromCache: function (model, filters) {
var def = modelFieldsCache.cacheDefs[model];
if (!def) {
- def = modelFieldsCache.cacheDefs[model] = this.rpc(model, "fields_get")
+ def = modelFieldsCache.cacheDefs[model] = this._rpc(model, "fields_get")
.args([
false,
["store", "searchable", "type", "string", "relation", "selection", "related"]])
diff --git a/addons/web/static/src/js/widgets/switch_company_menu.js b/addons/web/static/src/js/widgets/switch_company_menu.js
index feaf487fcc7..1f5f0733938 100644
--- a/addons/web/static/src/js/widgets/switch_company_menu.js
+++ b/addons/web/static/src/js/widgets/switch_company_menu.js
@@ -18,7 +18,7 @@ var SwitchCompanyMenu = Widget.extend({
this.$el.on('click', '.dropdown-menu li a[data-menu]', _.debounce(function(ev) {
ev.preventDefault();
var company_id = $(ev.currentTarget).data('company-id');
- self.rpc('res.users', 'write')
+ self._rpc('res.users', 'write')
.args([[session.uid], {'company_id': company_id}])
.exec()
.then(function() {
diff --git a/addons/web/static/test/helpers/test_utils.js b/addons/web/static/test/helpers/test_utils.js
index 124ccfb462f..5f08ff67fe3 100644
--- a/addons/web/static/test/helpers/test_utils.js
+++ b/addons/web/static/test/helpers/test_utils.js
@@ -138,7 +138,7 @@ function createAsyncView(params) {
var src = $(this).attr('src');
if (src[0] !== '#') {
$(this).attr('src', '#test:' + $(this).attr('src'));
- widget.performRPC(src);
+ widget._rpc(src).exec();
}
});
}
diff --git a/addons/web_diagram/static/src/js/diagram_controller.js b/addons/web_diagram/static/src/js/diagram_controller.js
index e22f7ad99ac..e9ded7bb1ff 100644
--- a/addons/web_diagram/static/src/js/diagram_controller.js
+++ b/addons/web_diagram/static/src/js/diagram_controller.js
@@ -172,7 +172,7 @@ var DiagramController = AbstractController.extend({
Dialog.confirm(this, (_t("Are you sure you want to remove this transition?")), {
confirm_callback: function () {
var state = self.model.get();
- self.rpc(state.connector_model, 'unlink')
+ self._rpc(state.connector_model, 'unlink')
.args([event.data.id])
.exec()
.then(self.reload.bind(self));
@@ -191,7 +191,7 @@ var DiagramController = AbstractController.extend({
Dialog.confirm(this, (msg), {
confirm_callback: function () {
var state = self.model.get();
- self.rpc(state.node_model, 'unlink')
+ self._rpc(state.node_model, 'unlink')
.args([event.data.id])
.exec()
.then(self.reload.bind(self));
diff --git a/addons/web_diagram/static/src/js/diagram_model.js b/addons/web_diagram/static/src/js/diagram_model.js
index 16d65d67519..4e84c162a79 100644
--- a/addons/web_diagram/static/src/js/diagram_model.js
+++ b/addons/web_diagram/static/src/js/diagram_model.js
@@ -62,25 +62,28 @@ var DiagramModel = AbstractModel.extend({
*/
_fetchDiagramInfo: function () {
var self = this;
- return this.performRPC('/web_diagram/diagram/get_diagram_info', {
- id: this.res_id,
- model: this.modelName,
- node: this.node_model,
- connector: this.connector_model,
- src_node: this.connectors.attrs.source,
- des_node: this.connectors.attrs.destination,
- label: this.connectors.attrs.label || false,
- bgcolor: this.nodes.attrs.bgcolor,
- shape: this.nodes.attrs.shape,
- visible_nodes: this.visible_nodes,
- invisible_nodes: this.invisible_nodes,
- node_fields_string: this.node_fields_string,
- connector_fields_string: this.connector_fields_string,
- }).then(function (data) {
- self.datanodes = data.nodes;
- self.edges = data.conn;
- self.parent_field = data.parent_field;
- });
+ return this._rpc('/web_diagram/diagram/get_diagram_info')
+ .params({
+ id: this.res_id,
+ model: this.modelName,
+ node: this.node_model,
+ connector: this.connector_model,
+ src_node: this.connectors.attrs.source,
+ des_node: this.connectors.attrs.destination,
+ label: this.connectors.attrs.label || false,
+ bgcolor: this.nodes.attrs.bgcolor,
+ shape: this.nodes.attrs.shape,
+ visible_nodes: this.visible_nodes,
+ invisible_nodes: this.invisible_nodes,
+ node_fields_string: this.node_fields_string,
+ connector_fields_string: this.connector_fields_string,
+ })
+ .exec()
+ .then(function (data) {
+ self.datanodes = data.nodes;
+ self.edges = data.conn;
+ self.parent_field = data.parent_field;
+ });
},
});
diff --git a/addons/web_planner/static/src/js/web_planner_backend.js b/addons/web_planner/static/src/js/web_planner_backend.js
index 980cd9cb134..8245eef9182 100644
--- a/addons/web_planner/static/src/js/web_planner_backend.js
+++ b/addons/web_planner/static/src/js/web_planner_backend.js
@@ -13,7 +13,7 @@ var PlannerLauncher = planner.PlannerLauncher.extend({
},
_fetch_planner_data: function () {
var planner_by_menu = this.planner_by_menu = {};
- return this.rpc('web.planner', 'search_read')
+ return this._rpc('web.planner', 'search_read')
.exec()
.then(function (res) {
_.each(res.records, function (planner) {
diff --git a/addons/web_planner/static/src/js/web_planner_common.js b/addons/web_planner/static/src/js/web_planner_common.js
index b3b17c5c1cc..64f13232de7 100644
--- a/addons/web_planner/static/src/js/web_planner_common.js
+++ b/addons/web_planner/static/src/js/web_planner_common.js
@@ -1,7 +1,6 @@
odoo.define('web.planner.common', function (require) {
"use strict";
-var ajax = require('web.ajax');
var core = require('web.core');
var Dialog = require('web.Dialog');
var dom = require('web.dom');
@@ -71,7 +70,7 @@ var PlannerDialog = Dialog.extend({
var def = rpc.query({model: 'web.planner', method: 'render'})
.args([this.planner.view_id[0], this.planner.planner_application])
.withContext(session.user_context)
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then((function (template) {
this.$template = $(template);
}).bind(this));
@@ -355,7 +354,7 @@ var PlannerDialog = Dialog.extend({
_save_planner_data: function() {
return rpc.query({model: 'web.planner', method: 'write'})
.args([this.planner.id, {'data': JSON.stringify(this.planner.data), 'progress': this.planner.progress}])
- .exec({callback: ajax.rpc.bind(ajax)});
+ .exec({type: "ajax"});
},
show_enterprise: function () {
var buttons = [{
@@ -365,7 +364,7 @@ var PlannerDialog = Dialog.extend({
click: function () {
rpc.query({model: "res.users", method: "search_count"})
.args([[["share", "=", false]]])
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then(function (data) {
window.location = "https://www.odoo.com/odoo-enterprise/upgrade?utm_medium=community_upgrade&num_users=" + data;
});
diff --git a/addons/web_settings_dashboard/static/src/js/dashboard.js b/addons/web_settings_dashboard/static/src/js/dashboard.js
index 2433a0255bd..e94ff9bc976 100644
--- a/addons/web_settings_dashboard/static/src/js/dashboard.js
+++ b/addons/web_settings_dashboard/static/src/js/dashboard.js
@@ -25,21 +25,23 @@ var Dashboard = Widget.extend({
load: function(dashboards){
var self = this;
var loading_done = new $.Deferred();
- this.performRPC("/web_settings_dashboard/data", {}).then(function (data) {
- // Load each dashboard
- var all_dashboards_defs = [];
- _.each(dashboards, function(dashboard) {
- var dashboard_def = self['load_' + dashboard](data);
- if (dashboard_def) {
- all_dashboards_defs.push(dashboard_def);
- }
- });
+ this._rpc("/web_settings_dashboard/data")
+ .exec()
+ .then(function (data) {
+ // Load each dashboard
+ var all_dashboards_defs = [];
+ _.each(dashboards, function(dashboard) {
+ var dashboard_def = self['load_' + dashboard](data);
+ if (dashboard_def) {
+ all_dashboards_defs.push(dashboard_def);
+ }
+ });
- // Resolve loading_done when all dashboards defs are resolved
- $.when.apply($, all_dashboards_defs).then(function() {
- loading_done.resolve();
+ // Resolve loading_done when all dashboards defs are resolved
+ $.when.apply($, all_dashboards_defs).then(function() {
+ loading_done.resolve();
+ });
});
- });
return loading_done;
},
@@ -88,7 +90,7 @@ var DashboardInvitations = Widget.extend({
$target.prop('disabled', true);
$target.find('i.fa-cog').removeClass('hidden');
// Try to create user accountst
- this.rpc("res.users", "web_dashboard_create_users")
+ this._rpc("res.users", "web_dashboard_create_users")
.args([user_emails])
.exec()
.then(function() {
@@ -165,7 +167,7 @@ var DashboardPlanner = Widget.extend({
willStart: function () {
var self = this;
- return this.rpc('web.planner', 'search_read')
+ return this._rpc('web.planner', 'search_read')
.exec()
.then(function(res) {
self.planners = res.records;
diff --git a/addons/web_tour/static/src/js/debug_manager.js b/addons/web_tour/static/src/js/debug_manager.js
index 484f21b07e2..3a4726a4b1f 100644
--- a/addons/web_tour/static/src/js/debug_manager.js
+++ b/addons/web_tour/static/src/js/debug_manager.js
@@ -19,7 +19,7 @@ DebugManager.include({
consume_tours: function () {
var active_tours = get_active_tours();
if (active_tours.length > 0) { // tours might have been consumed meanwhile
- this.rpc('web_tour.tour', 'consume')
+ this._rpc('web_tour.tour', 'consume')
.args([active_tours])
.exec()
.then(function () {
diff --git a/addons/web_tour/static/src/js/tour_manager.js b/addons/web_tour/static/src/js/tour_manager.js
index 5f84ae888d2..8ab70b29818 100644
--- a/addons/web_tour/static/src/js/tour_manager.js
+++ b/addons/web_tour/static/src/js/tour_manager.js
@@ -451,7 +451,7 @@ return core.Class.extend(mixins.EventDispatcherMixin, ServicesMixin, {
this._log = [];
} else {
var self = this;
- this.rpc('web_tour.tour', 'consume')
+ this._rpc('web_tour.tour', 'consume')
.args([[tour_name]])
.exec()
.then(function () {
diff --git a/addons/web_tour/static/src/js/tour_service.js b/addons/web_tour/static/src/js/tour_service.js
index 4778cd9cc70..a89655e6416 100644
--- a/addons/web_tour/static/src/js/tour_service.js
+++ b/addons/web_tour/static/src/js/tour_service.js
@@ -30,7 +30,7 @@ return session.is_bound.then(function () {
// in the page source.
if (session.is_frontend && session.is_superuser) {
var def = rpc.query({model: 'web_tour.tour', method: 'get_consumed_tours'})
- .exec({callback: ajax.rpc.bind(ajax)});
+ .exec({type: "ajax"});
defs.push(def);
}
return $.when.apply($, defs).then(function (consumed_tours) {
diff --git a/addons/website/static/src/js/web_planner_website.js b/addons/website/static/src/js/web_planner_website.js
index 7f196a0ce9d..ccf84c803d0 100644
--- a/addons/website/static/src/js/web_planner_website.js
+++ b/addons/website/static/src/js/web_planner_website.js
@@ -4,20 +4,24 @@ odoo.define('web.planner.website', function (require) {
var ajax = require('web.ajax');
var core = require('web.core');
var planner = require('web.planner.common');
+var rpc = require('web.rpc');
var session = require('web.session');
var website = require('website.website');
-var model = require('website.model');
var qweb = core.qweb;
var WebsitePlannerLauncher = planner.PlannerLauncher.extend({
_fetch_planner_data: function () {
- return model.performModelRPC('web.planner', 'search_read', [[['planner_application', '=', 'planner_website']]]).then((function (planner) {
- if (!planner.length) return;
+ return rpc.query({model: 'web.planner', method: 'search_read'})
+ .args([[['planner_application', '=', 'planner_website']]])
+ .exec({type: "ajax"})
+ .then((function (planner) {
+ planner = planner.records;
+ if (!planner.length) return;
- planner[0].data = $.parseJSON(planner[0].data) || {};
- this._setup_for_planner(planner[0]);
- }).bind(this));
+ planner[0].data = $.parseJSON(planner[0].data) || {};
+ this._setup_for_planner(planner[0]);
+ }).bind(this));
},
});
diff --git a/addons/website/static/src/js/website.backendDashboard.js b/addons/website/static/src/js/website.backendDashboard.js
index 67a72a6de9e..94b7a89c6b9 100644
--- a/addons/website/static/src/js/website.backendDashboard.js
+++ b/addons/website/static/src/js/website.backendDashboard.js
@@ -103,9 +103,12 @@ var Dashboard = Widget.extend(ControlPanelMixin, {
}
var self = this;
- this.performModelRPC('ir.config_parameter', 'set_param', ['google_management_client_id', ga_client_id]).then(function(){
- self.on_date_range_button('week');
- });
+ this._rpc('ir.config_parameter', 'set_param')
+ .args(['google_management_client_id', ga_client_id])
+ .exec()
+ .then(function(){
+ self.on_date_range_button('week');
+ });
},
render_dashboards: function() {
diff --git a/addons/website/static/src/js/website.model.js b/addons/website/static/src/js/website.model.js
deleted file mode 100644
index 66b75e398af..00000000000
--- a/addons/website/static/src/js/website.model.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Service to fetch data, websites Javascript must use performModelRPC of this module
- */
-odoo.define('website.model', function (require) {
-"use strict";
-
-var Class = require('web.Class');
-var Mixins = require('web.mixins');
-var ajax = require('web.ajax');
-
-var CallService = Class.extend(Mixins.EventDispatcherMixin, {
- custom_events: {
- call_service: '_callService'
- },
- init: function () {
- Mixins.EventDispatcherMixin.init.call(this);
- },
-
- //--------------------------------------------------------------------------
- // Private
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * @param {OdooEvent} event
- */
- _callService: function (event) {
- var result = ajax[event.data.method].apply(ajax, event.data.args);
- event.data.callback(result);
- },
-});
-
-var Model = Class.extend(Mixins.EventDispatcherMixin, Mixins.ServicesMixin, {
- init: function (parent) {
- Mixins.EventDispatcherMixin.init.call(this);
- this.setParent(parent);
- },
-});
-
-return new Model(new CallService());
-});
diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js
index 3a4d6dc5000..11072cac74e 100644
--- a/addons/website/static/src/js/website.seo.js
+++ b/addons/website/static/src/js/website.seo.js
@@ -490,17 +490,20 @@ var Configurator = Dialog.extend({
def.resolve(null);
} else {
var fields = ['website_meta_title', 'website_meta_description', 'website_meta_keywords'];
- this.performModelRPC(obj.model, 'read', [[obj.id], fields, base.get_context()]).then(function (data) {
- if (data.length) {
- var meta = data[0];
- meta.model = obj.model;
- def.resolve(meta);
- } else {
- def.resolve(null);
- }
- }).fail(function () {
- def.reject();
- });
+ this._rpc(obj.model, 'read')
+ .args([[obj.id], fields, base.get_context()])
+ .exec()
+ .then(function (data) {
+ if (data.length) {
+ var meta = data[0];
+ meta.model = obj.model;
+ def.resolve(meta);
+ } else {
+ def.resolve(null);
+ }
+ }).fail(function () {
+ def.reject();
+ });
}
return def;
},
@@ -509,7 +512,9 @@ var Configurator = Dialog.extend({
if (!obj) {
return $.Deferred().reject();
} else {
- return this.performModelRPC(obj.model, 'write', [[obj.id], data, base.get_context()]);
+ return this._rpc(obj.model, 'write')
+ .args([[obj.id], data, base.get_context()])
+ .exec();
}
},
titleChanged: function () {
diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js
index 604c8d589f9..426c63e1d2e 100644
--- a/addons/website/static/src/js/website.snippets.editor.js
+++ b/addons/website/static/src/js/website.snippets.editor.js
@@ -4,6 +4,7 @@ odoo.define('website.snippets.editor', function (require) {
var ajax = require("web.ajax");
var core = require("web.core");
var Dialog = require("web.Dialog");
+var rpc = require("web.rpc");
var editor = require("web_editor.editor");
var animation = require('web_editor.snippets.animation');
var options = require('web_editor.snippets.options');
@@ -54,7 +55,6 @@ options.registry.menu_data = options.Class.extend({
options.registry.company_data = options.Class.extend({
start: function () {
- var self = this;
this._super.apply(this, arguments);
var proto = options.registry.company_data.prototype;
@@ -62,11 +62,14 @@ options.registry.company_data = options.Class.extend({
if (proto.__link_deferred === undefined) {
proto.__link_deferred = $.Deferred();
return ajax.jsonRpc("/web/session/get_session_info", "call").then(function (session) {
- return self.performModelRPC("res.users", "read", [session.uid, ["company_id"]]).then(function (res) {
- proto.__link_deferred.resolve(
- "/web#action=base.action_res_company_form&view_type=form&id=" + (res && res[0] && res[0].company_id[0] || 1)
- );
- });
+ return rpc.query({model: "res.users", method: "read"})
+ .args([session.uid, ["company_id"]])
+ .exec({type: "ajax"})
+ .then(function (res) {
+ proto.__link_deferred.resolve(
+ "/web#action=base.action_res_company_form&view_type=form&id=" + (res && res[0] && res[0].company_id[0] || 1)
+ );
+ });
});
}
},
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index b42180246d2..94f8706c41d 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -21,7 +21,6 @@
-
diff --git a/addons/website_blog/static/src/js/website_blog.editor.js b/addons/website_blog/static/src/js/website_blog.editor.js
index 263e0e9317c..1e39dcd5a5f 100644
--- a/addons/website_blog/static/src/js/website_blog.editor.js
+++ b/addons/website_blog/static/src/js/website_blog.editor.js
@@ -1,7 +1,6 @@
odoo.define('website_blog.new_blog_post', function (require) {
"use strict";
-var ajax = require('web.ajax');
var core = require('web.core');
var rpc = require('web.rpc');
var base = require('web_editor.base');
@@ -14,7 +13,7 @@ contentMenu.TopBar.include({
new_blog_post: function () {
rpc.query({model: 'blog.blog', method: 'name_search'})
.withContext(base.get_context())
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then(function (blog_ids) {
if (blog_ids.length === 1) {
document.location = '/blog/' + blog_ids[0][0] + '/post/new';
diff --git a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js
index 2dd6b6e4c41..0d3611ef87a 100644
--- a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js
+++ b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js
@@ -1,7 +1,7 @@
odoo.define('crm.partner_assign', function (require) {
'use strict';
-var model = require('website.model');
+var rpc = require('web.rpc');
var website = require('website.website');
/*
* This file is intended to add interactivity to survey forms rendered by
@@ -21,8 +21,12 @@ $('.interested_partner_assign_confirm').on('click',function(e){
var $btn = $(this);
if ($('.interested_partner_assign_form .comment_interested').val() && $('.interested_partner_assign_form .contacted_interested').prop('checked')){
$btn.prop('disabled', true);
- model.performModelRPC('crm.lead', "partner_interested",
- [[parseInt($('.interested_partner_assign_form .assign_lead_id').val())], $('.interested_partner_assign_form .comment_interested').val()])
+ rpc.query({model: 'crm.lead', method: "partner_interested"})
+ .args([
+ [parseInt($('.interested_partner_assign_form .assign_lead_id').val())],
+ $('.interested_partner_assign_form .comment_interested').val()
+ ])
+ .exec({type: "ajax"})
.then(function(){
window.location.href = '/my/leads';
})
@@ -39,12 +43,14 @@ $('.interested_partner_assign_confirm').on('click',function(e){
$('.desinterested_partner_assign_confirm').on('click',function(){
var $btn = $(this);
$btn.prop('disabled', true);
- model.performModelRPC('crm.lead', "partner_desinterested",
- [[parseInt($('.desinterested_partner_assign_form .assign_lead_id').val())],
+ rpc.query({model: 'crm.lead', method: "partner_desinterested"})
+ .args([
+ [parseInt($('.desinterested_partner_assign_form .assign_lead_id').val())],
$('.desinterested_partner_assign_form .comment_desinterested').val(),
$('.desinterested_partner_assign_form .contacted_desinterested').prop('checked'),
$('.desinterested_partner_assign_form .customer_mark_spam').prop('checked'),
- ])
+ ])
+ .exec({type: "ajax"})
.then(function(){
window.location.href = '/my/leads';
}).always(function() {
@@ -56,9 +62,12 @@ $('.desinterested_partner_assign_confirm').on('click',function(){
opp_stage_buttons.on('click',function(e){
var $btn = $(this);
$btn.prop('disabled', true);
- model.performModelRPC('crm.lead', "write", [[parseInt(e.currentTarget.getAttribute('opp'))],{
+ rpc.query('crm.lead', "write")
+ .args([[parseInt(e.currentTarget.getAttribute('opp'))],{
stage_id: parseInt(e.currentTarget.getAttribute('data')),
- },], {context: {website_partner_assign:1}})
+ },])
+ .withContext({website_partner_assign:1})
+ .exec({type: "ajax"})
.fail(function() {
$btn.prop('disabled', false);
})
@@ -76,7 +85,8 @@ $('.edit_contact_form .country_id').on('change', function(){
$('.edit_contact_confirm').on('click',function(){
var $btn = $(this);
$btn.prop('disabled', true);
- model.performModelRPC('crm.lead', "write", [[parseInt($('.edit_contact_form .opportunity_id').val())],{
+ rpc.query({model: 'crm.lead', method: "write"})
+ .args([[parseInt($('.edit_contact_form .opportunity_id').val())],{
partner_name: $('.edit_contact_form .partner_name').val(),
phone: $('.edit_contact_form .phone').val(),
mobile: $('.edit_contact_form .mobile').val(),
@@ -88,6 +98,7 @@ $('.edit_contact_confirm').on('click',function(){
state_id: parseInt($('.edit_contact_form .state_id').find(":selected").attr('value')),
country_id: parseInt($('.edit_contact_form .country_id').find(":selected").attr('value')),
}])
+ .exec({type: "ajax"})
.fail(function() {
$btn.prop('disabled', false);
})
@@ -100,11 +111,13 @@ $('.edit_contact_confirm').on('click',function(){
$('.new_opp_confirm').on('click',function(e){
var $btn = $(this);
$btn.prop('disabled', true);
- model.performModelRPC('crm.lead', "create_opp_portal", [{
+ rpc.query({model: 'crm.lead', method: "create_opp_portal"})
+ .args([{
contact_name: $('.new_opp_form .contact_name').val(),
title: $('.new_opp_form .title').val(),
description: $('.new_opp_form .description').val(),
}])
+ .exec({type: "ajax"})
.done(function(response){
if (response.errors) {
$('#new-opp-dialog .alert').remove();
@@ -125,7 +138,8 @@ $('.new_opp_confirm').on('click',function(e){
$('.edit_opp_confirm').on('click',function(){
var $btn = $(this);
$btn.prop('disabled', true);
- model.performModelRPC('crm.lead', "update_lead_portal", [[parseInt($('.edit_opp_form .opportunity_id').val())],{
+ rpc.query({model: 'crm.lead', method: "update_lead_portal"})
+ .args([[parseInt($('.edit_opp_form .opportunity_id').val())],{
date_deadline: $('.edit_opp_form .date_deadline').val(),
planned_revenue: parseFloat($('.edit_opp_form .planned_revenue').val()),
probability: parseFloat($('.edit_opp_form .probability').val()),
@@ -134,6 +148,7 @@ $('.edit_opp_confirm').on('click',function(){
activity_date_deadline: $('.edit_opp_form .activity_date_deadline').val(),
priority: $('input[name="PriorityRadioOptions"]:checked').val(),
}])
+ .exec({type: "ajax"})
.fail(function() {
$btn.prop('disabled', false);
})
diff --git a/addons/website_links/static/src/js/website_links.js b/addons/website_links/static/src/js/website_links.js
index d9a729672eb..e7e12589843 100644
--- a/addons/website_links/static/src/js/website_links.js
+++ b/addons/website_links/static/src/js/website_links.js
@@ -3,10 +3,10 @@ odoo.define('website_links.website_links', function (require) {
var ajax = require('web.ajax');
var core = require('web.core');
+var rpc = require('web.rpc');
var Widget = require('web.Widget');
var base = require('web_editor.base');
var website = require('website.website');
-var model = require('website.model');
var qweb = core.qweb;
var _t = core._t;
@@ -49,11 +49,13 @@ if(!$('.o_website_links_create_tracked_url').length) {
});
},
fetch_objects: function() {
- return model.performModelRPC(this.obj, 'search_read', [[]]).then(function(result) {
- return _.map(result, function(val) {
- return {id: val.id, text:val.name};
+ return rpc.query({model: this.obj, method: 'search_read'})
+ .exec({type: "ajax"})
+ .then(function(result) {
+ return _.map(result, function(val) {
+ return {id: val.id, text:val.name};
+ });
});
- });
},
object_exists: function(query) {
return _.find(this.objects, function(val) {
@@ -68,10 +70,13 @@ if(!$('.o_website_links_create_tracked_url').length) {
create_object: function(name) {
var self = this;
- return model.performModelRPC(this.obj, 'create', [{name:name}]).then(function(record) {
- self.element.attr('value', record);
- self.objects.push({'id': record, 'text': name});
- });
+ return rpc.query({model: this.obj, method: 'create'})
+ .args([{name:name}])
+ .exec({type: "ajax"})
+ .then(function(record) {
+ self.element.attr('value', record);
+ self.objects.push({'id': record, 'text': name});
+ });
},
});
diff --git a/addons/website_links/static/src/js/website_links_charts.js b/addons/website_links/static/src/js/website_links_charts.js
index 892aff45494..a0033f0148e 100644
--- a/addons/website_links/static/src/js/website_links_charts.js
+++ b/addons/website_links/static/src/js/website_links_charts.js
@@ -1,10 +1,10 @@
odoo.define('website_links.charts', function (require) {
'use strict';
+var rpc = require('web.rpc');
var Widget = require('web.Widget');
var base = require('web_editor.base');
var website = require('website.website');
-var model = require('website.model');
var exports = {};
@@ -133,29 +133,39 @@ if(!$('.o_website_links_chart').length) {
var links_domain = ['link_id', '=', parseInt(link_id)];
var total_clicks = function() {
- return clicks.call('search_count', [[links_domain]]);
+ return rpc.query({model: 'link.tracker.click', method: 'search_count'})
+ .args([[links_domain]])
+ .exec({type: "ajax"});
};
var clicks_by_day = function() {
- return model.performModelRPC('link.tracker.click', 'read_group', [[links_domain], ['create_date']],
- {'groupby':'create_date:day'});
+ return rpc.query({model: 'link.tracker.click', method: 'read_group'})
+ .args([[links_domain], ['create_date']])
+ .kwargs({'groupby':'create_date:day'})
+ .exec({type: "ajax"});
};
var clicks_by_country = function() {
- return model.performModelRPC('link.tracker.click', 'read_group', [[links_domain], ['country_id']],
- {'groupby':'country_id'});
+ return rpc.query({model: 'link.tracker.click', method: 'read_group'})
+ .args([[links_domain], ['country_id']])
+ .kwargs({'groupby':'country_id'})
+ .exec({type: "ajax"});
};
var last_week_clicks_by_country = function() {
var interval = moment().subtract(7, 'days').format("YYYY-MM-DD");
- return model.performModelRPC('link.tracker.click', 'read_group', [[links_domain, ['create_date', '>', interval]], ['country_id']],
- {'groupby':'country_id'});
+ return rpc.query({model: 'link.tracker.click', method: 'read_group'})
+ .args([[links_domain, ['create_date', '>', interval]], ['country_id']])
+ .kwargs({'groupby':'country_id'})
+ .exec({type: "ajax"});
};
var last_month_clicks_by_country = function() {
var interval = moment().subtract(30, 'days').format("YYYY-MM-DD");
- return model.performModelRPC('link.tracker.click', 'read_group', [[links_domain, ['create_date', '>', interval]], ['country_id']],
- {'groupby':'country_id'});
+ return rpc.query({model: 'link.tracker.click', method: 'read_group'})
+ .args([[links_domain, ['create_date', '>', interval]], ['country_id']])
+ .kwargs({'groupby':'country_id'})
+ .exec({type: "ajax"});
};
$.when(total_clicks(),
diff --git a/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js b/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js
index 369f8787adb..c15f30c223b 100644
--- a/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js
+++ b/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js
@@ -2,7 +2,7 @@ odoo.define('website_mail_channel.editor', function (require) {
'use strict';
var core = require('web.core');
-var model = require('website.model');
+var rpc = require('web.rpc');
var base = require('web_editor.base');
var options = require('web_editor.snippets.options');
var website = require('website.website');
@@ -18,8 +18,10 @@ options.registry.subscribe = options.Class.extend({
window_title: _t("Add a Subscribe Button"),
select: _t("Discussion List"),
init: function (field) {
- return model.performModelRPC('mail.channel', 'name_search',
- ['', [['public','=','public']]], { context: base.get_context() });
+ return rpc.query({model: 'mail.channel', method: 'name_search'})
+ .args(['', [['public','=','public']]])
+ .withContext(base.get_context())
+ .exec({type: "ajax"});
},
}).then(function (mail_channel_id) {
self.$target.attr("data-id", mail_channel_id);
diff --git a/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js b/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js
index 1da6cc8886b..2189a59c746 100644
--- a/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js
+++ b/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js
@@ -1,9 +1,9 @@
odoo.define('website_mass_mailing.editor', function (require) {
'use strict';
-var model = require('website.model');
var ajax = require('web.ajax');
var core = require('web.core');
+var rpc = require('web.rpc');
var base = require('web_editor.base');
var web_editor = require('web_editor.editor');
var options = require('web_editor.snippets.options');
@@ -21,7 +21,10 @@ var mass_mailing_common = options.Class.extend({
'window_title': this.popup_title,
'select': _t("Newsletter"),
'init': function (field) {
- return model.performModelRPC('mail.mass_mailing.list', 'name_search', ['', []], { context: base.get_context() });
+ return rpc.query({model: 'mail.mass_mailing.list', method: 'name_search'})
+ .args(['', []])
+ .withContext(base.get_context())
+ .exec({type: "ajax"});
},
});
def.then(function (mailing_list_id) {
diff --git a/addons/website_sale/static/src/js/website_sale.editor.js b/addons/website_sale/static/src/js/website_sale.editor.js
index f59de3c3b73..3bacdd80d5b 100644
--- a/addons/website_sale/static/src/js/website_sale.editor.js
+++ b/addons/website_sale/static/src/js/website_sale.editor.js
@@ -3,7 +3,7 @@ odoo.define('website_sale.editor', function (require) {
var ajax = require('web.ajax');
var core = require('web.core');
-var model = require('website.model');
+var rpc = require('web.rpc');
var contentMenu = require('website.contentMenu');
var options = require('web_editor.snippets.options');
@@ -44,16 +44,17 @@ options.registry.website_sale = options.Class.extend({
if (size_y >= 4) $select = $select.add($size.find('tr:eq(3) td:lt('+size_x+')'));
$select.addClass("selected");
- model.performModelRPC('product.style', 'search_read', [[]])
- .then(function (data) {
- var $ul = self.$el.find('ul[name="style"]');
- for (var k in data) {
- $ul.append(
- $('')
- .append( $('').text(data[k]['name']) ));
- }
- self.set_active();
- });
+ rpc.query({model: 'product.style', method: 'search_read'})
+ .exec({type: "ajax"})
+ .then(function (data) {
+ var $ul = self.$el.find('ul[name="style"]');
+ for (var k in data) {
+ $ul.append(
+ $('')
+ .append( $('').text(data[k]['name']) ));
+ }
+ self.set_active();
+ });
this.bind_resize();
},
diff --git a/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js b/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js
index 96c81defe6f..5d6de94656d 100644
--- a/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js
+++ b/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js
@@ -84,7 +84,7 @@ var ProductWishlist = Widget.extend({
rpc.query({model: 'product.wishlist', method: 'write'})
.args([[wish], { active: false }, base.get_context()])
- .exec({callback: ajax.rpc.bind(ajax)})
+ .exec({type: "ajax"})
.then(function(){
$(tr).hide();
});