[Checkins] SVN: z3ext.layout/trunk/ Use __parent__ for layout quering
Nikolay Kim
fafhrd at datacom.kz
Tue Jan 20 03:50:20 EST 2009
Log message for revision 94874:
Use __parent__ for layout quering
Changed:
U z3ext.layout/trunk/CHANGES.txt
U z3ext.layout/trunk/src/z3ext/layout/interfaces.py
U z3ext.layout/trunk/src/z3ext/layout/layout.py
U z3ext.layout/trunk/src/z3ext/layout/pagelet.py
U z3ext.layout/trunk/src/z3ext/layout/zcml.py
-=-
Modified: z3ext.layout/trunk/CHANGES.txt
===================================================================
--- z3ext.layout/trunk/CHANGES.txt 2009-01-20 06:07:06 UTC (rev 94873)
+++ z3ext.layout/trunk/CHANGES.txt 2009-01-20 08:50:19 UTC (rev 94874)
@@ -2,6 +2,12 @@
CHANGES
=======
+2.0.3 (2009-01-20)
+------------------
+
+- Use __parent__ for layout quering
+
+
2.0.2 (2009-01-08)
------------------
Modified: z3ext.layout/trunk/src/z3ext/layout/interfaces.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/interfaces.py 2009-01-20 06:07:06 UTC (rev 94873)
+++ z3ext.layout/trunk/src/z3ext/layout/interfaces.py 2009-01-20 08:50:19 UTC (rev 94874)
@@ -23,9 +23,11 @@
""" Layout not found exception """
-class IPagelet(IBrowserPage):
+class IPagelet(interface.Interface):
""" pagelet """
+ context = interface.Attribute('Context')
+
contexts = interface.Attribute('Additional contexts')
isRedirected = interface.Attribute('is redirected')
Modified: z3ext.layout/trunk/src/z3ext/layout/layout.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/layout.py 2009-01-20 06:07:06 UTC (rev 94873)
+++ z3ext.layout/trunk/src/z3ext/layout/layout.py 2009-01-20 08:50:19 UTC (rev 94874)
@@ -77,7 +77,7 @@
self.context = context
self.request = request
- self.__parent__ = view.context
+ self.__parent__ = view.__parent__
def update(self):
pass
@@ -101,14 +101,16 @@
return self.render()
if self.__name__ != self.layout:
- layout = queryLayout(view, self.request, name=self.layout)
+ layout = queryLayout(
+ view, self.request, view.__parent__, name=self.layout)
if layout is not None:
return layout(layout=self, view=view, *args, **kw)
else:
- if layoutview.context is not self.context.__parent__:
- context = self.context.__parent__
+ context = self.context
+ if layoutview.context is not context.__parent__:
+ context = context.__parent__
else:
- context = getattr(self.context.__parent__, '__parent__')
+ context = getattr(context.__parent__, '__parent__', None)
layout = queryLayout(self, self.request, context, name=self.layout)
if layout is not None:
Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.py 2009-01-20 06:07:06 UTC (rev 94873)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.py 2009-01-20 08:50:19 UTC (rev 94874)
@@ -67,6 +67,8 @@
for idx in range(len(args)):
setattr(self, 'context%s'%idx, args[idx])
+ self.__parent__ = context
+
def update(self):
pass
@@ -86,7 +88,8 @@
if self.isRedirected or self.request.response.getStatus() in (302, 303):
return u''
- layout = queryLayout(self, self.request, name=self.layoutname)
+ layout = queryLayout(
+ self, self.request, self.__parent__, name=self.layoutname)
if layout is None:
return self.render()
else:
Modified: z3ext.layout/trunk/src/z3ext/layout/zcml.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/zcml.py 2009-01-20 06:07:06 UTC (rev 94873)
+++ z3ext.layout/trunk/src/z3ext/layout/zcml.py 2009-01-20 08:50:19 UTC (rev 94874)
@@ -26,6 +26,7 @@
from zope.configuration.fields import Path, Tokens, GlobalObject, GlobalInterface
from zope.configuration.exceptions import ConfigurationError
from zope.publisher.interfaces import IPublishTraverse
+from zope.publisher.interfaces.browser import IBrowserPage
from zope.publisher.interfaces.browser import IBrowserPublisher
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
from zope.app.component.metadirectives import IBasicViewInformation
@@ -373,9 +374,9 @@
# prepare allowed interfaces and attributes
allowed_interface.extend(provides)
+ allowed_interface.append(IBrowserPage)
allowed_attributes.extend(kwargs.keys())
- allowed_attributes.extend(('__call__', 'browserDefault',
- 'update', 'render', 'publishTraverse'))
+ allowed_attributes.extend(('__call__', 'browserDefault', 'publishTraverse'))
# Set up permission mapping for various accessible attributes
_handle_allowed_interface(
More information about the Checkins
mailing list