From e8cbbeddffd0f58032582b7a7e6ccfc1ef8de317 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Thu, 7 Apr 2011 05:04:29 +0200 Subject: [PATCH] applicationsession bzr revid: al@openerp.com-20110407030429-d6c26b10zduodir0 --- openerpweb/openerpweb.py | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/openerpweb/openerpweb.py b/openerpweb/openerpweb.py index baf08632d2c..30c0f03f4ba 100644 --- a/openerpweb/openerpweb.py +++ b/openerpweb/openerpweb.py @@ -18,6 +18,25 @@ import simplejson import nonliterals import xmlrpctimeout +#----------------------------------------------------------- +# Globals +#----------------------------------------------------------- + +path_root = os.path.dirname(os.path.dirname(os.path.normpath(__file__))) +path_addons = os.path.join(path_root, 'addons') +cherrypy_root = None + +#----------------------------------------------------------- +# Per Database Globals (might move into a pool if needed) +#----------------------------------------------------------- + +applicationsession = {} +addons_module = {} +addons_manifest = {} +controllers_class = {} +controllers_object = {} +controllers_path = {} + #---------------------------------------------------------- # OpenERP Client Library #---------------------------------------------------------- @@ -270,6 +289,7 @@ class JsonRequest(object): def parse(self, request): self.request = request self.params = request.get("params", {}) + self.applicationsession = applicationsession self.httpsession_id = "cookieid" self.httpsession = cherrypy.session self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex @@ -358,18 +378,21 @@ class HttpRequest(object): """ def dispatch(self, controller, f, request, **kw): self.request = request + self.applicationsession = applicationsession self.httpsession_id = "cookieid" self.httpsession = cherrypy.session self.result = "" print "GET/POST --> %s.%s %s %r" % (controller.__class__.__name__, f.__name__, request, kw) r = f(controller, self, **kw) + print "<--", r + print return r def httprequest(f): # check cleaner wrapping: # functools.wraps(f)(lambda x: JsonRequest().dispatch(x, f)) def http_handler(self,*l, **kw): - HttpRequest().dispatch(self, f, cherrypy.request, **kw) + return HttpRequest().dispatch(self, f, cherrypy.request, **kw) http_handler.exposed = 1 return http_handler @@ -377,17 +400,6 @@ def httprequest(f): # Cherrypy stuff #----------------------------------------------------------- -path_root = os.path.dirname(os.path.dirname(os.path.normpath(__file__))) -path_addons = os.path.join(path_root, 'addons') -cherrypy_root = None - -# globals might move into a pool if needed -addons_module = {} -addons_manifest = {} -controllers_class = {} -controllers_object = {} -controllers_path = {} - class ControllerType(type): def __init__(cls, name, bases, attrs): super(ControllerType, cls).__init__(name, bases, attrs)