[REF] *: use _rpc method for all rpcs
The _rpc method is now the preferred method to do a rpc, so we need to update all calls.
This commit is contained in:
committed by
Aaron Bohy
parent
78c97e6cc4
commit
86a87aa8b0
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -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'),
|
||||
});
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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}));
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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('<a href="%s"></a>', 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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
* }
|
||||
* });
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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("");
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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]; }))
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"]])
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 () {
|
||||
|
||||
@@ -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 () {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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());
|
||||
});
|
||||
@@ -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 () {
|
||||
|
||||
@@ -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)
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
</xpath>
|
||||
<xpath expr="//script[last()]" position="after">
|
||||
<script type="text/javascript" src="/website/static/src/js/website.js"></script>
|
||||
<script type="text/javascript" src="/website/static/src/js/website.model.js"></script>
|
||||
<script type="text/javascript" src="/website/static/src/js/website.share.js"></script>
|
||||
<script type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script>
|
||||
<script type="text/javascript" src="/website/static/src/js/website.zoomodoo.js"></script>
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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);
|
||||
})
|
||||
|
||||
@@ -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});
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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(
|
||||
$('<li data-style="'+data[k]['id']+'" data-toggle_class="'+data[k]['html_class']+'"/>')
|
||||
.append( $('<a/>').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(
|
||||
$('<li data-style="'+data[k]['id']+'" data-toggle_class="'+data[k]['html_class']+'"/>')
|
||||
.append( $('<a/>').text(data[k]['name']) ));
|
||||
}
|
||||
self.set_active();
|
||||
});
|
||||
|
||||
this.bind_resize();
|
||||
},
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user