From 704e180bfc571ce40e689f4842553d23b13468d5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 6 Apr 2011 15:29:34 +0200 Subject: [PATCH] [ADD] Add call() to dataset. Moved datarecord methods in dataset bzr revid: fme@openerp.com-20110406132934-7jwgrkhi78xbffsb --- addons/base/controllers/main.py | 16 +++++++++------- addons/base/static/src/js/data.js | 12 +++++++++++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index f95ee61f4d1..090c6ac092d 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -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) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 4044fa19cc2..059b24af232 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -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() { } });