[Checkins] SVN: z3ext.layout/trunk/ Use IPagelet instead of IPageTemplate for pagelet rendering
Nikolay Kim
fafhrd at datacom.kz
Thu Dec 18 03:23:08 EST 2008
Log message for revision 94164:
Use IPagelet instead of IPageTemplate for pagelet rendering
Changed:
U z3ext.layout/trunk/CHANGES.txt
U z3ext.layout/trunk/src/z3ext/layout/pagelet.py
U z3ext.layout/trunk/src/z3ext/layout/pagelet.txt
-=-
Modified: z3ext.layout/trunk/CHANGES.txt
===================================================================
--- z3ext.layout/trunk/CHANGES.txt 2008-12-18 06:55:04 UTC (rev 94163)
+++ z3ext.layout/trunk/CHANGES.txt 2008-12-18 08:23:07 UTC (rev 94164)
@@ -2,6 +2,12 @@
CHANGES
=======
+1.7.3 (2008-12-18)
+------------------
+
+- Use IPagelet instead of IPageTemplate for pagelet rendering
+
+
1.7.2 (2008-12-17)
------------------
Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.py 2008-12-18 06:55:04 UTC (rev 94163)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.py 2008-12-18 08:23:07 UTC (rev 94164)
@@ -23,7 +23,6 @@
from zope.publisher.interfaces import NotFound
from zope.publisher.interfaces.browser import IBrowserPublisher
from zope.tales.expressions import SimpleModuleImporter
-from zope.pagetemplate.interfaces import IPageTemplate
from zope.app.publisher.browser import queryDefaultViewName
from z3ext.layout.interfaces import IPagelet, IPageletType, ILayout
@@ -32,7 +31,7 @@
@interface.implementer(IPagelet)
@component.adapter(interface.Interface, interface.Interface)
def queryPagelet(context, request):
- name = queryDefaultViewName(context, request, 'index.html')
+ name = queryDefaultViewName(context, request, None)
if name:
view = queryMultiAdapter((context, request), name=name)
if IPagelet.providedBy(view):
@@ -56,11 +55,9 @@
class BrowserPagelet(BrowserPage):
interface.implements(IPagelet)
+ template = None
layoutname = u''
- index = None
- template = None
-
def __init__(self, context, request, *args):
self.managers = args
super(BrowserPagelet, self).__init__(context, request)
@@ -69,16 +66,15 @@
pass
def render(self):
- template = queryMultiAdapter((self, self.request), IPageTemplate)
+ if self.template is not None:
+ return self.template()
+ else:
+ template = queryMultiAdapter((self, self.request), IPagelet, name='')
+ if template is not None:
+ template.update()
+ return template.render()
+ raise LookupError("Can't find IPagelet for this pagelet.")
- if template is None:
- template = self.template or self.index
- if template is None:
- raise LookupError("Can't find IPageTemplate for pagelet.")
- return template()
-
- return template(self)
-
def __call__(self):
self.update()
Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.txt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.txt 2008-12-18 06:55:04 UTC (rev 94163)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.txt 2008-12-18 08:23:07 UTC (rev 94164)
@@ -320,7 +320,7 @@
>>> pagelet.render()
Traceback (most recent call last):
...
- LookupError: Can't find IPageTemplate for pagelet.
+ LookupError: Can't find IPagelet for this pagelet.
>>> try:
... tmp = __file__
@@ -328,14 +328,17 @@
... from z3ext.layout import tests
... __file__ = tests.__file__
- >>> from zope.pagetemplate.interfaces import IPageTemplate
- >>> from zope.app.pagetemplate import ViewPageTemplateFile
- >>> pt = ViewPageTemplateFile(template)
- >>> def getPT(context, request):
- ... return pt
- >>> component.getSiteManager().registerAdapter(
- ... getPT, (pagelet.__class__, interface.Interface), IPageTemplate, '')
+ >>> pageletClass = pagelet.__class__
+ >>> context = xmlconfig.string("""
+ ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+ ... <z3ext:pagelet
+ ... for="z3ext.layout.TESTS.pageletClass"
+ ... template="%s"
+ ... permission="zope.Public" />
+ ... </configure>
+ ... """%template, context)
+
>>> print pagelet()
<div>My pagelet</div>
More information about the Checkins
mailing list