From 4d3387c54c87380a791debb1a5409dd8765ff27e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 5 Jan 2012 17:03:51 +0100 Subject: [PATCH] [imp] added service in object_service to be able to call a method specifying kwargs bzr revid: nicolas.vanhoren@openerp.com-20120105160351-0xy697sjeihplx6v --- openerp/osv/osv.py | 5 +++++ openerp/service/web_services.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 76a403b87c2..5602616ee3a 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -162,6 +162,11 @@ class object_proxy(object): raise except_osv('Object Error', 'Object %s doesn\'t exist' % str(obj)) return getattr(object, method)(cr, uid, *args, **kw) + def execute_kw(self, db, uid, obj, method, args, kw=None): + import pdb + pdb.set_trace() + return self.execute(db, uid, obj, method, *args, **kw or {}) + @check def execute(self, db, uid, obj, method, *args, **kw): cr = pooler.get_db(db).cursor() diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 2cf8a848378..f486a050a7f 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -572,7 +572,7 @@ class objects_proxy(netsvc.ExportService): params = params[3:] if method == 'obj_list': raise NameError("obj_list has been discontinued via RPC as of 6.0, please query ir.model directly!") - if method not in ['execute','exec_workflow']: + if method not in ['execute', 'execute_kw', 'exec_workflow']: raise NameError("Method not available %s" % method) security.check(db,uid,passwd) assert openerp.osv.osv.service, "The object_proxy class must be started with start_object_proxy."