[ADD] Add call() to dataset. Moved datarecord methods in dataset

bzr revid: fme@openerp.com-20110406132934-7jwgrkhi78xbffsb
This commit is contained in:
Fabien Meghazi
2011-04-06 15:29:34 +02:00
parent 56340ea612
commit 704e180bfc
2 changed files with 20 additions and 8 deletions
+9 -7
View File
@@ -9,8 +9,8 @@ import openerpweb
import openerpweb.ast
import openerpweb.nonliterals
__all__ = ['Session', 'Menu', 'DataSet', 'DataRecord',
'View', 'FormView', 'ListView', 'SearchView',
__all__ = ['Session', 'Menu', 'DataSet', 'View',
'FormView', 'ListView', 'SearchView',
'Action']
class Xml2Json:
@@ -309,7 +309,6 @@ class DataSet(openerpweb.Controller):
@openerpweb.jsonrequest
def get(self, request, model, ids, fields=False):
return self.do_get(request, model, ids, fields)
def do_get(self, request, model, ids, fields=False):
""" Fetches and returns the records of the model ``model`` whose ids
are in ``ids``.
@@ -332,11 +331,8 @@ class DataSet(openerpweb.Controller):
record_map = dict((record['id'], record) for record in records)
return [record_map[id] for id in ids if record_map.get(id)]
class DataRecord(openerpweb.Controller):
_cp_path = "/base/datarecord"
@openerpweb.jsonrequest
def load(self, req, model, id, fields):
m = req.session.model(model)
value = {}
@@ -351,6 +347,12 @@ class DataRecord(openerpweb.Controller):
r = m.write([id], data, context)
return {'result': r}
@openerpweb.jsonrequest
def call(self, req, model, method, ids, args):
m = req.session.model(model)
r = getattr(m, method)(ids, *args)
return {'result': r}
class View(openerpweb.Controller):
def fields_view_get(self, session, model, view_id, view_type, transform=True):
Model = session.model(model)
+11 -1
View File
@@ -113,13 +113,23 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
}
},
write: function (id, data, callback) {
this.rpc('/base/datarecord/save', {
this.rpc('/base/dataset/save', {
model: this.model,
id: id,
data: data,
context: this.context
}, callback);
},
call: function (method, ids, args, callback) {
ids = ids || [];
args = args || [];
this.rpc('/base/dataset/call', {
model: this.model,
method: method,
ids: ids,
args: args
}, callback);
},
unlink: function() {
}
});