[Checkins] SVN: Sandbox/cklinger/megrok.pagelet/trunk/s Added Pagelet Renderer, rename LayoutView to Layout

Christian Klinger cklinger at novareto.de
Thu Feb 19 07:21:51 EST 2009


Log message for revision 96734:
  Added Pagelet Renderer, rename LayoutView to Layout

Changed:
  U   Sandbox/cklinger/megrok.pagelet/trunk/setup.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/__init__.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py
  A   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/templates/house.pt
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_layers.py
  A   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_renderer.py

-=-
Modified: Sandbox/cklinger/megrok.pagelet/trunk/setup.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/setup.py	2009-02-19 11:35:31 UTC (rev 96733)
+++ Sandbox/cklinger/megrok.pagelet/trunk/setup.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -27,6 +27,7 @@
       install_requires=[
           'setuptools',
           'martian',
+	  'interlude',
           'grokcore.component',
 	  'z3c.template',
 	  'z3c.pagelet',

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/__init__.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/__init__.py	2009-02-19 11:35:31 UTC (rev 96733)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/__init__.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -1,3 +1,3 @@
-from megrok.pagelet.component import LayoutView, Pagelet 
+from megrok.pagelet.component import Layout, Pagelet 
 from grokcore.component import name, title, description
 from megrok.pagelet.directive import layout, template 

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py	2009-02-19 11:35:31 UTC (rev 96733)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -8,16 +8,18 @@
 from martian.error import GrokImportError
 from zope.interface import implements
 from zope.component import getMultiAdapter
+from z3c.pagelet.interfaces import IPagelet
 from zope.publisher.browser import BrowserPage
 from z3c.template.interfaces import ILayoutTemplate
 from grokcore.view.interfaces import IGrokView
 
-class LayoutView(object):
+class Layout(object):
+    """ A basic class for Layouts"""
     pass
 
 
 class Pagelet(BrowserPage):
-    implements(interfaces.IGrokView)
+    implements(interfaces.IGrokView, IPagelet)
     template = None
     layout = None
 

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py	2009-02-19 11:35:31 UTC (rev 96733)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -106,7 +106,7 @@
 
 class LayoutViewGrokker(martian.ClassGrokker):
     """Code resuse for View, ContentProvider and Viewlet grokkers"""
-    martian.component(megrok.pagelet.LayoutView) 
+    martian.component(megrok.pagelet.Layout) 
     martian.directive(grokcore.component.context)
     martian.directive(grokcore.view.layer, default=IDefaultBrowserLayer)
     martian.directive(grokcore.component.name, get_default=default_view_name)

Added: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/templates/house.pt
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/templates/house.pt	                        (rev 0)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/templates/house.pt	2009-02-19 12:21:51 UTC (rev 96734)
@@ -0,0 +1,7 @@
+<html>
+   <body>
+     <div class="layout" tal:content="structure provider:pagelet">
+       here comes the content
+     </div>
+   </body>
+</html>

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py	2009-02-19 11:35:31 UTC (rev 96733)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -46,7 +46,7 @@
         return self.layout()
 
 
-class Layout(megrok.pagelet.LayoutView):
+class Layout(megrok.pagelet.Layout):
     grok.context(Elephant)
     #grok.name('layout')
     megrok.pagelet.template('templates/layout.pt')  
@@ -62,7 +62,7 @@
             return layout(self)
         return self.layout()
 
-class ContextLayout(megrok.pagelet.LayoutView):
+class ContextLayout(megrok.pagelet.Layout):
     grok.context(Mammoth)
     megrok.pagelet.template('templates/context_layout.pt')
 

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_layers.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_layers.py	2009-02-19 11:35:31 UTC (rev 96733)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_layers.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -45,7 +45,7 @@
     def render(self):
 	return "<b>Yeah</b>"
 
-class MyLayout(megrok.pagelet.LayoutView):
+class MyLayout(megrok.pagelet.Layout):
     grok.context(Mammoth)
     megrok.pagelet.template('templates/playout.pt')
 
@@ -57,7 +57,7 @@
     def render(self):
         return "<b> This is the view in the Layer </b>"
 
-class MyLayerLayout(megrok.pagelet.LayoutView):
+class MyLayerLayout(megrok.pagelet.Layout):
     grok.context(Mammoth)
     grok.layer(MySkinLayer)
     megrok.pagelet.template('templates/layer_layout.pt')

Added: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_renderer.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_renderer.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_renderer.py	2009-02-19 12:21:51 UTC (rev 96734)
@@ -0,0 +1,60 @@
+"""
+  >>> from zope.component import getUtility
+  >>> from zope.publisher.browser import TestRequest
+  >>> from z3c.template.interfaces import ILayoutTemplate
+  >>> from zope.interface import Interface
+  >>> from zope.component import getMultiAdapter
+  >>> request = TestRequest()
+  >>> house = House()
+  >>> view = getMultiAdapter((house, request), name="myview")
+
+Now call the view.
+
+  >>> print view()
+    <html>
+       <body>
+         <div class="layout"><html> <body> <div class="layout"> <div class="content"> my template content </div> </div> </body> </html></div>
+       </body>
+    </html>
+
+"""
+import grok
+import megrok.pagelet
+from zope.interface import Interface
+from zope.component import getMultiAdapter
+from z3c.pagelet.provider import PageletRenderer
+from zope.contentprovider.interfaces import IContentProvider
+import z3c.pagelet.interfaces
+import zope.component
+import zope.interface
+import zope.publisher.interfaces.browser
+
+
+class House(grok.Context):
+    pass
+
+class MyView(megrok.pagelet.Pagelet):
+    grok.context(House)
+
+    def render(self):
+        return '<html> <body> <div class="layout"> <div class="content"> my template content </div> </div> </body> </html>'
+
+class HouseLayout(megrok.pagelet.Layout):
+    grok.context(House)
+    megrok.pagelet.template('templates/house.pt')
+
+class GPageletRenderer(grok.MultiAdapter, PageletRenderer):
+    grok.implements(IContentProvider)
+    grok.name('pagelet')
+    grok.adapts(zope.interface.Interface,
+                zope.publisher.interfaces.browser.IBrowserRequest,
+		z3c.pagelet.interfaces.IPagelet)
+    grok.provides(IContentProvider)
+
+def test_suite():
+    from zope.testing import doctest
+    from megrok.pagelet.tests import FunctionalLayer
+    import interlude
+    suite = doctest.DocTestSuite(optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
+    suite.layer = FunctionalLayer
+    return suite



More information about the Checkins mailing list