[Checkins] SVN: five.localsitemanager/branches/global-request-container/s GlobalRequestContainer for base of utility aq_chain.
Lawrence Rowe
cvs-admin at zope.org
Wed Sep 5 17:59:49 UTC 2012
Log message for revision 127722:
GlobalRequestContainer for base of utility aq_chain.
Changed:
U five.localsitemanager/branches/global-request-container/setup.py
U five.localsitemanager/branches/global-request-container/src/five/localsitemanager/configure.zcml
U five.localsitemanager/branches/global-request-container/src/five/localsitemanager/localsitemanager.txt
U five.localsitemanager/branches/global-request-container/src/five/localsitemanager/registry.py
-=-
Modified: five.localsitemanager/branches/global-request-container/setup.py
===================================================================
--- five.localsitemanager/branches/global-request-container/setup.py 2012-09-05 17:55:04 UTC (rev 127721)
+++ five.localsitemanager/branches/global-request-container/setup.py 2012-09-05 17:59:45 UTC (rev 127722)
@@ -28,6 +28,7 @@
install_requires=[
'Acquisition',
'ZODB3',
+ 'five.globalrequest',
'setuptools',
'zope.component',
'zope.event',
Modified: five.localsitemanager/branches/global-request-container/src/five/localsitemanager/configure.zcml
===================================================================
--- five.localsitemanager/branches/global-request-container/src/five/localsitemanager/configure.zcml 2012-09-05 17:55:04 UTC (rev 127721)
+++ five.localsitemanager/branches/global-request-container/src/five/localsitemanager/configure.zcml 2012-09-05 17:59:45 UTC (rev 127722)
@@ -2,6 +2,8 @@
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser">
+ <include package="five.globalrequest" />
+
<subscriber
for="Products.Five.component.interfaces.IObjectManagerSite
zope.lifecycleevent.interfaces.IObjectMovedEvent"
Modified: five.localsitemanager/branches/global-request-container/src/five/localsitemanager/localsitemanager.txt
===================================================================
--- five.localsitemanager/branches/global-request-container/src/five/localsitemanager/localsitemanager.txt 2012-09-05 17:55:04 UTC (rev 127721)
+++ five.localsitemanager/branches/global-request-container/src/five/localsitemanager/localsitemanager.txt 2012-09-05 17:59:45 UTC (rev 127722)
@@ -317,7 +317,8 @@
>>> si_util.getPhysicalPath()
('', 'a', 'b', 'si_util')
>>> si_util.aq_chain
- [<SITestUtility at /a/b/si_util>, <Folder at /a/b>, <Folder at /a>, <Application at >]
+ [<SITestUtility at /a/b/si_util>, <Folder at /a/b>, <Folder at /a>, <Application at >,
+ <five.localsitemanager.registry.GlobalRequestContainer object at ...>]
>>> si_util.absolute_url()
'a/b/si_util'
Modified: five.localsitemanager/branches/global-request-container/src/five/localsitemanager/registry.py
===================================================================
--- five.localsitemanager/branches/global-request-container/src/five/localsitemanager/registry.py 2012-09-05 17:55:04 UTC (rev 127721)
+++ five.localsitemanager/branches/global-request-container/src/five/localsitemanager/registry.py 2012-09-05 17:59:45 UTC (rev 127722)
@@ -29,6 +29,7 @@
from zope.component.persistentregistry import PersistentComponents
from zope.component.registry import _getUtilityProvided
from zope.component.registry import UtilityRegistration
+from zope.globalrequest import getRequest
from zope.interface.adapter import _lookup
from zope.interface.adapter import _lookupAll
from zope.interface.adapter import _subscriptions
@@ -40,6 +41,18 @@
_marker = object()
+class GlobalRequestContainer(RequestContainer):
+ @property
+ def REQUEST(self):
+ request = getRequest()
+ if request is None:
+ raise AttributeError('REQUEST')
+ return request
+
+
+_GlobalRequestContainerInstance = GlobalRequestContainer()
+
+
class FiveVerifyingAdapterLookup(VerifyingAdapterLookup):
# override some AdapterLookupBase methods for acquisition wrapping
@@ -192,8 +205,10 @@
obj = Acquisition.aq_inner(obj)
base = Acquisition.aq_base(obj)
parent = Acquisition.aq_parent(obj)
- if parent is None or isinstance(parent, RequestContainer):
+ if parent is None:
return base
+ if isinstance(parent, RequestContainer):
+ parent = _GlobalRequestContainerInstance
return base.__of__(_rewrap(parent))
More information about the checkins
mailing list