[Checkins] SVN: z3ext.layout/tags/1.4.2/ tag for 1.4.2 release

Nikolay Kim fafhrd at datacom.kz
Wed May 14 04:05:47 EDT 2008


Log message for revision 86720:
  tag for 1.4.2 release

Changed:
  A   z3ext.layout/tags/1.4.2/
  D   z3ext.layout/tags/1.4.2/CHANGES.txt
  A   z3ext.layout/tags/1.4.2/CHANGES.txt
  U   z3ext.layout/tags/1.4.2/setup.py
  D   z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml
  A   z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml
  D   z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py
  A   z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py
  D   z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutpage.pt
  A   z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutportal.pt
  D   z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py
  A   z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py
  D   z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt
  A   z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt
  D   z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py
  A   z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py

-=-
Copied: z3ext.layout/tags/1.4.2 (from rev 86718, z3ext.layout/trunk)

Deleted: z3ext.layout/tags/1.4.2/CHANGES.txt
===================================================================
--- z3ext.layout/trunk/CHANGES.txt	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/CHANGES.txt	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,85 +0,0 @@
-=======
-CHANGES
-=======
-
-1.4.1 (2008-04-23)
-------------------
-
-- Use newer version of z3ext.autoinclude
-
-
-1.4 (2008-03-21)
-----------------
-
-- Added z3ext:pagelet directive
-
-- Code cleanup
-
-- Moved to svn.zope.org
-
-
-1.3.2 (2008-03-06)
-------------------
-
-- Removed context layouts
-
-
-1.3.1 (2008-02-21)
-------------------
-
-- Code cleanup
-
-- Remove code related to zope.formlib
-
-
-1.3.0 (2008-02-20)
-------------------
-
-- Removed code related to z3c.form
-
-
-1.2.1 (2008-02-18)
-------------------
-
-- Added 'redirect' method to IBrowserPagelet, this is usefull
-  when we need redirect during 'update' method and we don't 
-  need render pagelet at all.
-
-- Added adapter to IPagelet for (context, request),
-  this adapter gets browser:defaultView for context and if it IPagelet return it
-
-
-1.2.0 (2008-02-13)
-------------------
-
-- Remove all code related to persistent templates
-
-
-1.1.2 (2008-02-12)
-------------------
-
-- Added 'title' and 'description' fields layout directive
-
-- check ILayoutTemplateTAL for ISite
-
-
-1.1.0 (2008-02-08)
-------------------
-
-- Added compatibility with z3c.template layouts
-
-- Added ILayoutTemplateTAL interface, other packages
-  can define adapter to this interface and change layout template
-  TAL program (layout customization)
-
-
-1.0.1 (2008-02-02)
-------------------
-
-- Added required dependencies
-
-
-1.0.0 (2008-01-15)
-------------------
-
-- Initial release

Copied: z3ext.layout/tags/1.4.2/CHANGES.txt (from rev 86719, z3ext.layout/trunk/CHANGES.txt)
===================================================================
--- z3ext.layout/tags/1.4.2/CHANGES.txt	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/CHANGES.txt	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,93 @@
+=======
+CHANGES
+=======
+
+1.4.2 (2008-05-14)
+------------------
+
+- Remove unused interfaces
+
+- Tests updated
+
+
+1.4.1 (2008-04-23)
+------------------
+
+- Use newer version of z3ext.autoinclude
+
+
+1.4 (2008-03-21)
+----------------
+
+- Added z3ext:pagelet directive
+
+- Code cleanup
+
+- Moved to svn.zope.org
+
+
+1.3.2 (2008-03-06)
+------------------
+
+- Removed context layouts
+
+
+1.3.1 (2008-02-21)
+------------------
+
+- Code cleanup
+
+- Remove code related to zope.formlib
+
+
+1.3.0 (2008-02-20)
+------------------
+
+- Removed code related to z3c.form
+
+
+1.2.1 (2008-02-18)
+------------------
+
+- Added 'redirect' method to IBrowserPagelet, this is usefull
+  when we need redirect during 'update' method and we don't 
+  need render pagelet at all.
+
+- Added adapter to IPagelet for (context, request),
+  this adapter gets browser:defaultView for context and if it IPagelet return it
+
+
+1.2.0 (2008-02-13)
+------------------
+
+- Remove all code related to persistent templates
+
+
+1.1.2 (2008-02-12)
+------------------
+
+- Added 'title' and 'description' fields layout directive
+
+- check ILayoutTemplateTAL for ISite
+
+
+1.1.0 (2008-02-08)
+------------------
+
+- Added compatibility with z3c.template layouts
+
+- Added ILayoutTemplateTAL interface, other packages
+  can define adapter to this interface and change layout template
+  TAL program (layout customization)
+
+
+1.0.1 (2008-02-02)
+------------------
+
+- Added required dependencies
+
+
+1.0.0 (2008-01-15)
+------------------
+
+- Initial release

Modified: z3ext.layout/tags/1.4.2/setup.py
===================================================================
--- z3ext.layout/trunk/setup.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/setup.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -21,7 +21,7 @@
 def read(*rnames):
     return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
 
-version='1.4.2dev'
+version='1.4.2'
 
 
 setup(name='z3ext.layout',

Deleted: z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/configure.zcml	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,56 +0,0 @@
-<configure
-   xmlns="http://namespaces.zope.org/zope"
-   xmlns:zcml="http://namespaces.zope.org/zcml"
-   xmlns:z3ext="http://namespaces.zope.org/z3ext"
-   i18n_domain="z3ext">
-
-  <includeDependencies package="z3ext.layout" />
-
-  <!-- adapter provides IPagelet for (context, request) -->
-  <adapter factory=".pagelet.queryPagelet" />
-
-  <!-- default layouts -->
-  <z3ext:layout
-     layout="viewspace"
-     for="zope.app.component.interfaces.ISite"
-     title="Default layout (z3ext.layout)"
-     description="Default layout, registered for IDefaultBrowserLayer."
-     template="layoutcontent.pt" />
-
-  <z3ext:layout
-     name="viewspace"
-     layout="workspace"
-     title="Viewspace layout (z3ext.layout)"
-     description="Default viewpsace layout, registered for IDefaultBrowserLayer."
-     for="zope.app.component.interfaces.ISite"
-     template="layoutviewspace.pt" />
-
-  <z3ext:layout
-     name="workspace"
-     layout="portal"
-     title="Workspace layout (z3ext.layout)"
-     description="Default workspace layout, registered for IDefaultBrowserLayer."
-     for="zope.app.component.interfaces.ISite"
-     template="layoutworkspace.pt" />
-
-  <z3ext:layout
-     name="portal"
-     title="Portal layout (z3ext.layout)"
-     description="Default portal layout, registered for IDefaultBrowserLayer"
-     for="zope.app.component.interfaces.ISite"
-     template="layoutpage.pt" />
-
-  <!-- Registering documentation with API doc -->
-  <configure
-     xmlns:zcml="http://namespaces.zope.org/zcml"
-     xmlns:apidoc="http://namespaces.zope.org/apidoc"
-     zcml:condition="have apidoc">
-
-    <apidoc:bookchapter
-       id="z3ext-layout"
-       title="z3ext.layout - Template Layouts"
-       doc_path="README.txt"
-       parent="z3ext" />
-  </configure>
-
-</configure>

Copied: z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml (from rev 86719, z3ext.layout/trunk/src/z3ext/layout/configure.zcml)
===================================================================
--- z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/configure.zcml	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,56 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   xmlns:zcml="http://namespaces.zope.org/zcml"
+   xmlns:z3ext="http://namespaces.zope.org/z3ext"
+   i18n_domain="z3ext">
+
+  <includeDependencies package="z3ext.layout" />
+
+  <!-- adapter provides IPagelet for (context, request) -->
+  <adapter factory=".pagelet.queryPagelet" />
+
+  <!-- default layouts -->
+  <z3ext:layout
+     layout="viewspace"
+     for="zope.app.component.interfaces.ISite"
+     title="Default layout (z3ext.layout)"
+     description="Default layout, registered for IDefaultBrowserLayer."
+     template="layoutcontent.pt" />
+
+  <z3ext:layout
+     name="viewspace"
+     layout="workspace"
+     title="Viewspace layout (z3ext.layout)"
+     description="Default viewpsace layout, registered for IDefaultBrowserLayer."
+     for="zope.app.component.interfaces.ISite"
+     template="layoutviewspace.pt" />
+
+  <z3ext:layout
+     name="workspace"
+     layout="portal"
+     title="Workspace layout (z3ext.layout)"
+     description="Default workspace layout, registered for IDefaultBrowserLayer."
+     for="zope.app.component.interfaces.ISite"
+     template="layoutworkspace.pt" />
+
+  <z3ext:layout
+     name="portal"
+     title="Portal layout (z3ext.layout)"
+     description="Default portal layout, registered for IDefaultBrowserLayer"
+     for="zope.app.component.interfaces.ISite"
+     template="layoutportal.pt" />
+
+  <!-- Registering documentation with API doc -->
+  <configure
+     xmlns:zcml="http://namespaces.zope.org/zcml"
+     xmlns:apidoc="http://namespaces.zope.org/apidoc"
+     zcml:condition="have apidoc">
+
+    <apidoc:bookchapter
+       id="z3ext-layout"
+       title="z3ext.layout - Template Layouts"
+       doc_path="README.txt"
+       parent="z3ext" />
+  </configure>
+
+</configure>

Deleted: z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/interfaces.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,76 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" z3ext.layout interfaces
-
-$Id$
-"""
-from zope import interface
-from zope.publisher.interfaces.browser import IBrowserPage
-
-
-class ILayoutLayer(interface.Interface):
-    """ A layer that contains all registration of this package. """
-
-
-class IPagelet(IBrowserPage):
-    """ pagelet """
-
-    isRedirected = interface.Attribute('is redirected')
-
-    def redirect(url=''):
-        """Redirect URL, if `update` method needs redirect,
-        it should call `redirect` method, __call__ method should
-        check isRendered before render or layout."""
-
-    def update():
-        """Update the pagelet data."""
-
-    def render():
-        """Render the pagelet content w/o o-wrap."""
-
-
-class ILayout(IBrowserPage):
-    """ layout """
-
-    title = interface.Attribute('Layout title')
-
-    description = interface.Attribute('Layout description')
-
-    template = interface.Attribute('Layout template')
-
-    def update():
-        """Update the layout data """
-
-    def render():
-        """Render the layout """
-
-
-class ILayoutTemplateFile(interface.Interface):
-    """ layout template file """
-
-
-class ILayoutCreatedEvent(interface.Interface):
-    """ notification about new layout """
-
-    name = interface.Attribute('Name')
-
-    view = interface.Attribute('View')
-
-    context = interface.Attribute('Context')
-
-    layer = interface.Attribute('Layer')
-
-    layoutclass = interface.Attribute('Generated class for layout')
-
-    keywords = interface.Attribute('Keywords')

Copied: z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py (from rev 86719, z3ext.layout/trunk/src/z3ext/layout/interfaces.py)
===================================================================
--- z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/interfaces.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,72 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" z3ext.layout interfaces
+
+$Id$
+"""
+from zope import interface
+from zope.publisher.interfaces.browser import IBrowserPage
+
+
+class IPagelet(IBrowserPage):
+    """ pagelet """
+
+    isRedirected = interface.Attribute('is redirected')
+
+    def redirect(url=''):
+        """Redirect URL, if `update` method needs redirect,
+        it should call `redirect` method, __call__ method should
+        check isRendered before render or layout."""
+
+    def update():
+        """Update the pagelet data."""
+
+    def render():
+        """Render the pagelet content w/o o-wrap."""
+
+
+class ILayout(IBrowserPage):
+    """ layout """
+
+    title = interface.Attribute('Layout title')
+
+    description = interface.Attribute('Layout description')
+
+    template = interface.Attribute('Layout template')
+
+    def update():
+        """Update the layout data """
+
+    def render():
+        """Render the layout """
+
+
+class ILayoutTemplateFile(interface.Interface):
+    """ layout template file """
+
+
+class ILayoutCreatedEvent(interface.Interface):
+    """ notification about new layout """
+
+    name = interface.Attribute('Name')
+
+    view = interface.Attribute('View')
+
+    context = interface.Attribute('Context')
+
+    layer = interface.Attribute('Layer')
+
+    layoutclass = interface.Attribute('Generated class for layout')
+
+    keywords = interface.Attribute('Keywords')

Deleted: z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutpage.pt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/layoutpage.pt	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutpage.pt	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,14 +0,0 @@
-<metal:block metal:use-macro="context/@@standard_macros/page">
-  <div id="z3ext-portal" metal:fill-slot="columns">
-    <tal:block tal:content="structure provider:statusMessage" />
-    <tal:block tal:content="structure view/render" />
-  </div>
-  <div id="z3ext-portal" metal:fill-slot="workspace">
-    <tal:block tal:content="structure provider:statusMessage" />
-    <tal:block tal:content="structure view/render" />
-  </div>
-  <div id="z3ext-portal" metal:fill-slot="body">
-    <tal:block tal:content="structure provider:statusMessage" />
-    <tal:block tal:content="structure view/render" />
-  </div>
-</metal:block>

Copied: z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutportal.pt (from rev 86719, z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt)
===================================================================
--- z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutportal.pt	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/layoutportal.pt	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,14 @@
+<metal:block metal:use-macro="context/@@standard_macros/page">
+  <div id="z3ext-portal" metal:fill-slot="columns">
+    <tal:block tal:content="structure provider:statusMessage" />
+    <tal:block tal:content="structure view/render" />
+  </div>
+  <div id="z3ext-portal" metal:fill-slot="workspace">
+    <tal:block tal:content="structure provider:statusMessage" />
+    <tal:block tal:content="structure view/render" />
+  </div>
+  <div id="z3ext-portal" metal:fill-slot="body">
+    <tal:block tal:content="structure provider:statusMessage" />
+    <tal:block tal:content="structure view/render" />
+  </div>
+</metal:block>

Deleted: z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,91 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id$
-"""
-from zope import interface, component
-from zope.publisher.browser import BrowserPage
-from zope.component import getMultiAdapter, queryMultiAdapter
-from zope.pagetemplate.interfaces import IPageTemplate
-from zope.app.publisher.browser import queryDefaultViewName
-
-from z3ext.layout.interfaces import IPagelet, ILayout
-
-
- at interface.implementer(IPagelet)
- at component.adapter(interface.Interface, interface.Interface)
-def queryPagelet(context, request):
-    name = queryDefaultViewName(context, request, 'index.html')
-    if name:
-        view = getMultiAdapter((context, request), name=name)
-        if IPagelet.providedBy(view):
-            return view
-
-
-def queryLayout(view, request, context=None, iface=ILayout, name=''):
-    if context is None:
-        context = view.context
-
-    while context is not None:
-        layout = queryMultiAdapter((view, context, request), iface, name)
-        if layout is not None:
-            return layout
-
-        context = getattr(context, '__parent__', None)
-
-    return None
-
-
-class BrowserPagelet(BrowserPage):
-    interface.implements(IPagelet)
-
-    layoutname = u''
-
-    index = None
-    template = None
-
-    def update(self):
-        pass
-
-    def render(self):
-        template = queryMultiAdapter((self, self.request), IPageTemplate)
-
-        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()
-
-        if self.isRedirected:
-            return u''
-
-        layout = queryLayout(self, self.request, name=self.layoutname)
-        if layout is None:
-            return self.render()
-        else:
-            return layout()
-
-    isRedirected = False
-
-    def redirect(self, url=''):
-        if url:
-            self.request.response.redirect(url)
-
-        self.isRedirected = True

Copied: z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py (from rev 86719, z3ext.layout/trunk/src/z3ext/layout/pagelet.py)
===================================================================
--- z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,91 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+from zope import interface, component
+from zope.publisher.browser import BrowserPage
+from zope.component import getMultiAdapter, queryMultiAdapter
+from zope.pagetemplate.interfaces import IPageTemplate
+from zope.app.publisher.browser import queryDefaultViewName
+
+from z3ext.layout.interfaces import IPagelet, ILayout
+
+
+ at interface.implementer(IPagelet)
+ at component.adapter(interface.Interface, interface.Interface)
+def queryPagelet(context, request):
+    name = queryDefaultViewName(context, request, 'index.html')
+    if name:
+        view = getMultiAdapter((context, request), name=name)
+        if IPagelet.providedBy(view):
+            return view
+
+
+def queryLayout(view, request, context=None, iface=ILayout, name=''):
+    if context is None:
+        context = view.context
+
+    while context is not None:
+        layout = queryMultiAdapter((view, context, request), iface, name)
+        if layout is not None:
+            return layout
+
+        context = getattr(context, '__parent__', None)
+
+    return None
+
+
+class BrowserPagelet(BrowserPage):
+    interface.implements(IPagelet)
+
+    layoutname = u''
+
+    index = None
+    template = None
+
+    def update(self):
+        pass
+
+    def render(self):
+        template = queryMultiAdapter((self, self.request), IPageTemplate)
+
+        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()
+
+        if self.isRedirected:
+            return u''
+
+        layout = queryLayout(self, self.request, name=self.layoutname)
+        if layout is None:
+            return self.render()
+        else:
+            return layout()
+
+    isRedirected = False
+
+    def redirect(self, url=''):
+        if url:
+            self.request.response.redirect(url)
+
+        self.isRedirected = True

Deleted: z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.txt	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,222 +0,0 @@
-=================
-Pagelet directive
-=================
-
-Show how we can use the pagelet directive. Register the meta configuration for 
-the directive.
-
-  >>> import os, sys, tempfile
-  >>> from zope import interface, component
-  >>> from zope.configuration import xmlconfig
-  >>> import z3ext.layout
-  >>> context = xmlconfig.file('meta.zcml', z3ext.layout)
-
-We need also a custom pagelet class:
-
-  >>> from z3ext.layout.pagelet import BrowserPagelet
-  >>> class MyPagelet(BrowserPagelet):
-  ...     """Custom pagelet"""
-
-Make them available under the fake package ``custom``:
-
-  >>> sys.modules['custom'] = type(
-  ...     'Module', (), 
-  ...     {'MyPagelet': MyPagelet})()
-
-Register a pagelet within the directive with minimal attributes:
-
-  >>> context = xmlconfig.string("""
-  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
-  ...   <z3ext:pagelet
-  ...       name="index.html"
-  ...       class="custom.MyPagelet"
-  ...       permission="zope.Public"
-  ...       />
-  ... </configure>
-  ... """, context)
-
-Let's get the pagelet
-
-  >>> import zope.component
-  >>> from zope.publisher.browser import TestRequest
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
-  ...     name='index.html')
-
-and check them:
-
-  >>> pagelet
-  <z3ext.layout.zcml.PageletClass from <class 'MyPagelet'> ...>
-
-  >>> pagelet.context
-  <object object at ...>
-
-Register the pagelet with a different name and more attributes provided from
-the directive. We also use a custom attribute called label here.
-Also we don't use BrowserPagelet as parent class, pagelet directive automaticly
-adds BrowserPagetlet to bases classes. Let's define some more components...
-
-  >>> class SecondPagelet(object):
-  ...     label = u''
-
-  >>> import zope.interface
-  >>> class IContent(zope.interface.Interface):
-  ...     """Content interface."""
-
-  >>> class Content(object):
-  ...     zope.interface.implements(IContent)
-
-register the new classes in the custom module...
-
-  >>> sys.modules['custom'].IContent = IContent
-  >>> sys.modules['custom'].Content = Content
-  >>> sys.modules['custom'].SecondPagelet = SecondPagelet
-
-and use them in the directive:
-
-  >>> context = xmlconfig.string("""
-  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
-  ...   <z3ext:pagelet
-  ...       name="custom.html"
-  ...       class="custom.SecondPagelet"
-  ...       for="custom.IContent"
-  ...       permission="zope.Public"
-  ...       label="my Label" />
-  ... </configure>
-  ... """, context)
-
-Get the pagelet for the new content object
-
-  >>> import zope.component
-  >>> pagelet = zope.component.queryMultiAdapter((Content(), TestRequest()), 
-  ...     name='custom.html')
-
-and check them:
-
-  >>> pagelet
-  <z3ext.layout.zcml.PageletClass from <class 'SecondPagelet'> ...>
-
-  >>> pagelet.label
-  u'my Label'
-
-We also can provide another interface then the IPagelet within the directive.
-Such a interface must be inherited from IPagelet.
-
-  >>> class NewPagelet(BrowserPagelet):
-  ...     """New pagelet"""
-  >>> sys.modules['custom'] = type(
-  ...     'Module', (), 
-  ...     {'NewPagelet': NewPagelet})()
-
-
-Now register the pagelet within a interface.
-
-  >>> class INewPagelet(interface.Interface):
-  ...     """New pagelet interface."""
-  >>> sys.modules['custom'] = type(
-  ...     'Module', (), 
-  ...     {'INewPagelet': INewPagelet, 'NewPagelet': NewPagelet})()
-
-  >>> context = xmlconfig.string("""
-  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
-  ...   <z3ext:pagelet
-  ...       name="new.html"
-  ...       class="custom.NewPagelet"
-  ...       permission="zope.Public"
-  ...       provides="custom.INewPagelet" />
-  ... </configure>
-  ... """, context)
-
-And if we get the pagelet, we can see that the object provides the new 
-pagelet interface:
-
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
-  ...     name='new.html')
-  >>> pagelet
-  <z3ext.layout.zcml.PageletClass from <class 'NewPagelet'> ...>
-
-  >>> INewPagelet.providedBy(pagelet)
-  True
-
-We can create pagelet without specific class
-
-  >>> context = xmlconfig.string("""
-  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
-  ...   <z3ext:pagelet
-  ...       name="noclass.html"
-  ...       permission="zope.Public" />
-  ... </configure>
-  ... """, context) 
-
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
-  ...     name='noclass.html')
-  >>> pagelet
-  <z3ext.layout.zcml.PageletClass from None ...>
-
-
-We can create pagelet with template:
-
-  >>> context = xmlconfig.string("""
-  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
-  ...   <z3ext:pagelet
-  ...       name="unknown.html"
-  ...       template="unknown.pt"
-  ...       permission="zope.Public" />
-  ... </configure>
-  ... """, context)
-  Traceback (most recent call last):
-  ...
-  ZopeXMLConfigurationError: File "<string>", line 3.2-6.33
-  ConfigurationError: ('No such file', ...unknown.pt')
-
-  >>> temp_dir = tempfile.mkdtemp()
-  >>> template = os.path.join(temp_dir, 'pagelet.pt')
-  >>> open(template, 'w').write('''<div>My pagelet</div>''')
-
-  >>> context = xmlconfig.string("""
-  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
-  ...   <z3ext:pagelet
-  ...       name="template.html"
-  ...       template="%s"
-  ...       permission="zope.Public" />
-  ... </configure>
-  ... """%template, context)
-
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
-  ...     name='template.html')
-  >>> pagelet
-  <z3ext.layout.zcml.PageletClass from None ...>
-
-  >>> pagelet.template
-  <BoundPageTemplateFile of <z3ext.layout.zcml.PageletClass from None ...>>
-
-Pagelet rendering
-
-  >>> print pagelet.render()
-  <div>My pagelet</div>
-  <BLANKLINE>
-
-We should use page template as template for pagelet or we should
-provide IPageTemplate adapter for pagelet
-
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
-  ...     name='noclass.html')
-  >>> pagelet.render()
-  Traceback (most recent call last):
-  ...
-  LookupError: Can't find IPageTemplate for pagelet.
-
-  >>> 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, '')
-
-  >>> print pagelet.render()
-  <div>My pagelet</div>
-  <BLANKLINE>
-
-Now we need to clean up the custom module.
-
-  >>> del sys.modules['custom']

Copied: z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt (from rev 86719, z3ext.layout/trunk/src/z3ext/layout/pagelet.txt)
===================================================================
--- z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/pagelet.txt	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,223 @@
+=================
+Pagelet directive
+=================
+
+Show how we can use the pagelet directive. Register the meta configuration for 
+the directive.
+
+  >>> import os, tempfile
+  >>> from zope import interface, component
+  >>> from zope.configuration import xmlconfig
+  >>> import z3ext.layout
+  >>> context = xmlconfig.file('meta.zcml', z3ext.layout)
+
+We need also a custom pagelet class:
+
+  >>> from z3ext.layout.pagelet import BrowserPagelet
+  >>> class MyPagelet(BrowserPagelet):
+  ...     """Custom pagelet"""
+
+Register a pagelet within the directive with minimal attributes:
+
+  >>> context = xmlconfig.string("""
+  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+  ...   <z3ext:pagelet
+  ...       name="index.html"
+  ...       class="z3ext.layout.TESTS.MyPagelet"
+  ...       permission="zope.Public"
+  ...       />
+  ... </configure>
+  ... """, context)
+
+Let's get the pagelet
+
+  >>> from zope.publisher.browser import TestRequest
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='index.html')
+
+and check them:
+
+  >>> pagelet
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.MyPagelet'> ...>
+
+  >>> pagelet.context
+  <object object at ...>
+
+Register the pagelet with a different name and more attributes provided from
+the directive. We also use a custom attribute called label here.
+Also we don't use BrowserPagelet as parent class, pagelet directive automaticly
+adds BrowserPagetlet to bases classes. Let's define some more components...
+
+  >>> class SecondPagelet(object):
+  ...     label = u''
+
+  >>> import zope.interface
+  >>> class IContent(zope.interface.Interface):
+  ...     """Content interface."""
+
+  >>> class Content(object):
+  ...     zope.interface.implements(IContent)
+
+  >>> context = xmlconfig.string("""
+  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+  ...   <z3ext:pagelet
+  ...       name="custom.html"
+  ...       class="z3ext.layout.TESTS.SecondPagelet"
+  ...       for="z3ext.layout.TESTS.IContent"
+  ...       permission="zope.Public"
+  ...       label="my Label" />
+  ... </configure>
+  ... """, context)
+
+Get the pagelet for the new content object
+
+  >>> import zope.component
+  >>> pagelet = zope.component.queryMultiAdapter((Content(), TestRequest()), 
+  ...     name='custom.html')
+
+and check them:
+
+  >>> pagelet
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.SecondPagelet'> ...>
+
+  >>> pagelet.label
+  u'my Label'
+
+We also can provide another interface then the IPagelet within the directive.
+Such a interface must be inherited from IPagelet.
+
+  >>> class NewPagelet(BrowserPagelet):
+  ...     """New pagelet"""
+
+Now register the pagelet within a interface.
+
+  >>> class INewPagelet(interface.Interface):
+  ...     """New pagelet interface."""
+
+  >>> context = xmlconfig.string("""
+  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+  ...   <z3ext:pagelet
+  ...       name="new.html"
+  ...       class="z3ext.layout.TESTS.NewPagelet"
+  ...       permission="zope.Public"
+  ... provides="z3ext.layout.TESTS.INewPagelet" />
+  ... </configure>
+  ... """, context)
+
+And if we get the pagelet, we can see that the object provides the new 
+pagelet interface:
+
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='new.html')
+  >>> pagelet
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.NewPagelet'> ...>
+
+  >>> INewPagelet.providedBy(pagelet)
+  True
+
+We can create pagelet without specific class
+
+  >>> context = xmlconfig.string("""
+  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+  ...   <z3ext:pagelet
+  ...       name="noclass.html"
+  ...       permission="zope.Public" />
+  ... </configure>
+  ... """, context) 
+
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='noclass.html')
+  >>> pagelet
+  <z3ext.layout.zcml.PageletClass from None ...>
+
+
+We can create pagelet with template:
+
+  >>> context = xmlconfig.string("""
+  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+  ...   <z3ext:pagelet
+  ...       name="unknown.html"
+  ...       template="unknown.pt"
+  ...       permission="zope.Public" />
+  ... </configure>
+  ... """, context)
+  Traceback (most recent call last):
+  ...
+  ZopeXMLConfigurationError: File "<string>", line 3.2-6.33
+  ConfigurationError: ('No such file', ...unknown.pt')
+
+  >>> temp_dir = tempfile.mkdtemp()
+  >>> template = os.path.join(temp_dir, 'pagelet.pt')
+  >>> open(template, 'w').write('''<div>My pagelet</div>''')
+
+  >>> context = xmlconfig.string("""
+  ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
+  ...   <z3ext:pagelet
+  ...       name="template.html"
+  ...       template="%s"
+  ...       permission="zope.Public" />
+  ... </configure>
+  ... """%template, context)
+
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='template.html')
+  >>> pagelet
+  <z3ext.layout.zcml.PageletClass from None ...>
+
+  >>> pagelet.template
+  <BoundPageTemplateFile of <z3ext.layout.zcml.PageletClass from None ...>>
+
+Pagelet rendering
+
+  >>> print pagelet.render()
+  <div>My pagelet</div>
+  <BLANKLINE>
+
+We should use page template as template for pagelet or we should
+provide IPageTemplate adapter for pagelet
+
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='noclass.html')
+  >>> pagelet.render()
+  Traceback (most recent call last):
+  ...
+  LookupError: Can't find IPageTemplate for pagelet.
+
+  >>> 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, '')
+
+  >>> print pagelet()
+  <div>My pagelet</div>
+  <BLANKLINE>
+
+We can redirect during pagelet rendering, in this case render method
+doesn't call.
+
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='noclass.html')
+  >>> pagelet.redirect('/')
+  >>> pagelet.isRedirected
+  True
+  >>> pagelet()
+  u''
+
+We can get default pagelet view for content. First register default view
+
+  >>> from zope.component.interfaces import IDefaultViewName
+  >>> component.getSiteManager().registerAdapter(
+  ...     'index.html', (interface.Interface, interface.Interface),
+  ...     IDefaultViewName)
+
+  >>> view = component.getMultiAdapter(
+  ...     (object(), TestRequest()), z3ext.layout.interfaces.IPagelet)
+
+  >>> view
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.MyPagelet'> ...>
+
+  >>> view.__name__
+  u'index.html'
\ No newline at end of file

Deleted: z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/tests.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -1,64 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED 'AS IS' AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" 
-
-$Id$
-"""
-import unittest, doctest
-from zope import interface
-from zope.testing.doctestunit import DocFileSuite
-from zope.app.testing import setup
-from zope.app.container.sample import SampleContainer
-
-class IFolder1(interface.Interface):
-    pass
-
-class IFolder1_1(interface.Interface):
-    pass
-
-class IFolder1_1_1(interface.Interface):
-    pass
-
-
-class Folder(SampleContainer):
-    pass
-
-
-class MyLayout(object):
-
-    title = u'My layout'
-
-
-def setUp(test):
-    root = setup.placefulSetUp(site=True)
-    root.__name__ = 'root'
-    test.globs['root'] = root
-
-
-def tearDown(test):
-    setup.placefulTearDown()
-
-
-def test_suite():
-    return unittest.TestSuite((
-            doctest.DocFileSuite(
-                'README.txt',
-                setUp=setUp, tearDown=tearDown,
-                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
-                ),
-            doctest.DocFileSuite(
-                'pagelet.txt',
-                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
-                ),
-            ))

Copied: z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py (from rev 86719, z3ext.layout/trunk/src/z3ext/layout/tests.py)
===================================================================
--- z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py	                        (rev 0)
+++ z3ext.layout/tags/1.4.2/src/z3ext/layout/tests.py	2008-05-14 08:05:47 UTC (rev 86720)
@@ -0,0 +1,71 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED 'AS IS' AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" 
+
+$Id$
+"""
+import unittest, doctest
+from zope import interface, component
+from zope.testing.doctestunit import DocFileSuite
+from zope.app.testing import setup
+from zope.app.container.sample import SampleContainer
+
+from z3ext.layout import pagelet
+
+
+class IFolder1(interface.Interface):
+    pass
+
+class IFolder1_1(interface.Interface):
+    pass
+
+class IFolder1_1_1(interface.Interface):
+    pass
+
+
+class Folder(SampleContainer):
+    pass
+
+
+class MyLayout(object):
+
+    title = u'My layout'
+
+
+def setUp(test):
+    root = setup.placefulSetUp(site=True)
+    root.__name__ = 'root'
+    test.globs['root'] = root
+    component.provideAdapter(pagelet.queryPagelet)
+    setup.setUpTestAsModule(test, 'z3ext.layout.TESTS')
+
+
+def tearDown(test):
+    setup.placefulTearDown()
+    setup.tearDownTestAsModule(test)
+
+
+def test_suite():
+    return unittest.TestSuite((
+            doctest.DocFileSuite(
+                'README.txt',
+                setUp=setUp, tearDown=tearDown,
+                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
+                ),
+            doctest.DocFileSuite(
+                'pagelet.txt',
+            setUp=setUp, tearDown=tearDown,
+                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
+                ),
+            ))



More information about the Checkins mailing list