[ADD] Add call() to dataset. Moved datarecord methods in dataset
bzr revid: fme@openerp.com-20110406132934-7jwgrkhi78xbffsb
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user