diff --git a/addons/web/common/dispatch.py b/addons/web/common/dispatch.py index 57e45fa594e..fdcdb92118b 100644 --- a/addons/web/common/dispatch.py +++ b/addons/web/common/dispatch.py @@ -98,7 +98,8 @@ class WebRequest(object): self.params = dict(params) # OpenERP session setup self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex - self.session = self.httpsession.setdefault(self.session_id, session.OpenERPSession(self.config)) + self.session = self.httpsession.setdefault(self.session_id, session.OpenERPSession()) + self.session.config = self.config self.context = self.params.pop('context', None) self.debug = self.params.pop('debug', False) != False diff --git a/addons/web/common/session.py b/addons/web/common/session.py index a7bbd865073..2ed50bd6131 100644 --- a/addons/web/common/session.py +++ b/addons/web/common/session.py @@ -29,8 +29,8 @@ class OpenERPSession(object): Used to store references to non-literal domains which need to be round-tripped to the client browser. """ - def __init__(self, config): - self.config = config + def __init__(self): + self.config = None self._db = False self._uid = False self._login = False @@ -38,6 +38,12 @@ class OpenERPSession(object): self.context = {} self.contexts_store = {} self.domains_store = {} + + def __getstate__(self): + state = dict(self.__dict__) + if "config" in state: + del state['config'] + return state def build_connection(self): conn = openerplib.Connection(self.config.connector, database=self._db, login=self._login,