summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2013-08-05 15:40:59 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2013-08-05 15:40:59 +0200
commit76ef945c96c8cb3bbd823965a00232b451ed8a1a (patch)
tree2dad6bbd8e69b9f626327f0c62ce28380e802354 /addons/web/static/src/js
parentd256d16e3ae3181720ce9f01dd1c58e5c0a3d063 (diff)
Corrected some stuff in openerp.web.Model
bzr revid: nicolas.vanhoren@openerp.com-20130805134059-3ayw6b0tqqberkaw
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/data.js34
-rw-r--r--addons/web/static/src/js/openerpframework.js10
2 files changed, 35 insertions, 9 deletions
diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js
index 986c58270ca..d501b1263b1 100644
--- a/addons/web/static/src/js/data.js
+++ b/addons/web/static/src/js/data.js
@@ -253,6 +253,36 @@ instance.web.QueryGroup = instance.web.Class.extend({
});
instance.web.Model.include({
+ /**
+ new openerp.web.Model([session,] model_name[, context[, domain]])
+
+ @constructs instance.web.Model
+ @extends instance.web.Class
+
+ @param {openerp.web.Session} [session] The session object used to communicate with
+ the server.
+ @param {String} model_name name of the OpenERP model this object is bound to
+ @param {Object} [context]
+ @param {Array} [domain]
+ */
+ init: function() {
+ var session, model_name, context, domain;
+ var args = _.toArray(arguments);
+ args.reverse();
+ session = args.pop();
+ if (session && ! (session instanceof openerp.web.Session)) {
+ model_name = session;
+ session = null;
+ } else {
+ model_name = args.pop();
+ }
+ context = args.length > 0 ? args.pop() : null;
+ domain = args.length > 0 ? args.pop() : null;
+
+ this._super(session, model_name, context, domain);
+ this._context = context || {};
+ this._domain = domain || [];
+ },
session: function() {
if (! this._session)
return instance.session;
@@ -303,7 +333,7 @@ instance.web.Model.include({
* @param {String} signal signal to trigger on the workflow
*/
exec_workflow: function (id, signal) {
- return instance.session.rpc('/web/dataset/exec_workflow', {
+ return this.session().rpc('/web/dataset/exec_workflow', {
model: this.name,
id: id,
signal: signal
@@ -340,7 +370,7 @@ instance.web.Model.include({
*/
call_button: function (method, args) {
instance.web.pyeval.ensure_evaluated(args, {});
- return instance.session.rpc('/web/dataset/call_button', {
+ return this.session().rpc('/web/dataset/call_button', {
model: this.name,
method: method,
// Should not be necessary anymore. Integrate remote in this?
diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js
index 43a45e2d1d2..94149f94dbd 100644
--- a/addons/web/static/src/js/openerpframework.js
+++ b/addons/web/static/src/js/openerpframework.js
@@ -1055,7 +1055,7 @@ openerp.web.Session = openerp.web.Class.extend(openerp.web.PropertiesMixin, {
openerp.web.Model = openerp.web.Class.extend({
/**
- new openerp.web.Model([session,] model_name[, context[, domain]])
+ new openerp.web.Model([session,] model_name)
@constructs instance.web.Model
@extends instance.web.Class
@@ -1067,22 +1067,18 @@ openerp.web.Model = openerp.web.Class.extend({
@param {Array} [domain]
*/
init: function () {
- var session, model_name, context, domain;
+ var session, model_name;
var args = _.toArray(arguments);
args.reverse();
session = args.pop();
- if (! (session instanceof openerp.web.Session)) {
+ if (session && ! (session instanceof openerp.web.Session)) {
model_name = session;
session = null;
} else {
model_name = args.pop();
}
- context = args.length > 0 ? args.pop() : null;
- domain = args.length > 0 ? args.pop() : null;
this.name = model_name;
- this._context = context || {};
- this._domain = domain || [];
this._session = session;
},
session: function() {