[Checkins]
SVN: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/
Forgot to add my test files
Darryl Cousins
darryl at darrylcousins.net.nz
Sat Jun 30 15:58:56 EDT 2007
Log message for revision 77271:
Forgot to add my test files
Changed:
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider.py
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider_templates/
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider_templates/painting.pt
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager.py
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/firstprovider.pt
A grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/painting.pt
-=-
Added: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider.py
===================================================================
--- grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider.py (rev 0)
+++ grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider.py 2007-06-30 19:58:55 UTC (rev 77271)
@@ -0,0 +1,52 @@
+"""
+ >>> import grok
+ >>> from grok.ftests.view.provider import Mammoth
+ >>> grok.grok('grok.ftests.view.provider')
+ >>> getRootFolder()["manfred"] = Mammoth()
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/++skin++myskin/manfred/@@painting")
+ >>> print browser.contents
+ <html>
+ <body>
+ <h1>This is a cave painting</h1>
+ </body>
+ </html>
+
+"""
+import grok
+
+from zope.publisher.interfaces.browser import IBrowserRequest, IBrowserView
+from zope.contentprovider.interfaces import IContentProvider
+
+
+class Mammoth(grok.Model):
+ pass
+
+class IMySkinLayer(grok.ILayer):
+ pass
+
+class MySkin(grok.Skin):
+ grok.layer(IMySkinLayer)
+
+class Painting(grok.View):
+ pass
+
+class MammothContentProvider(grok.MultiAdapter, ):
+ grok.adapts(Mammoth, IMySkinLayer, IBrowserView)
+ grok.implements(IContentProvider)
+ grok.name('cave')
+
+ def __init__(self, context, request, view):
+ self.context = context
+ self.request = request
+ self.view = self.__parent__ = view
+
+ def update(self):
+ pass
+
+ def render(self):
+ return u'This is a cave painting'
+
Property changes on: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider_templates/painting.pt
===================================================================
--- grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider_templates/painting.pt (rev 0)
+++ grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/provider_templates/painting.pt 2007-06-30 19:58:55 UTC (rev 77271)
@@ -0,0 +1,6 @@
+<html>
+<body>
+<h1 tal:content="structure provider:cave">Hello, world!</h1>
+</body>
+</html>
+
Added: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager.py
===================================================================
--- grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager.py (rev 0)
+++ grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager.py 2007-06-30 19:58:55 UTC (rev 77271)
@@ -0,0 +1,99 @@
+"""
+ >>> import grok
+ >>> from grok.ftests.view.viewletmanager import Mammoth
+ >>> grok.grok('grok.ftests.view.viewletmanager')
+ >>> getRootFolder()["manfred"] = Mammoth()
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/++skin++myskin/manfred/@@painting")
+ >>> print browser.contents
+ <html>
+ <body>
+ <h1>This is a cave painting</h1>
+ <div><p>Hello World</p></div>
+ </body>
+ </html>
+
+"""
+import grok
+
+from zope.publisher.interfaces.browser import IBrowserRequest, IBrowserView
+from zope.contentprovider.interfaces import IContentProvider
+from zope.viewlet.interfaces import IViewletManager
+from zope.viewlet.interfaces import IViewlet
+from zope.viewlet.viewlet import ViewletBase
+import zope.component
+
+from z3c.viewlet.manager import WeightOrderedViewletManager
+
+class Mammoth(grok.Model):
+ pass
+
+class IMySkinLayer(grok.ILayer):
+ pass
+
+class MySkin(grok.Skin):
+ grok.layer(IMySkinLayer)
+
+class Painting(grok.View):
+ """Template must be in *_templates, I tried and I tried to find out
+ why when inline the `provider` tal directive wasn't found"""
+ pass
+
+class MammothContentProvider(grok.MultiAdapter):
+ grok.adapts(Mammoth, IMySkinLayer, IBrowserView)
+ grok.implements(IContentProvider)
+ grok.name('cave')
+
+ def __init__(self, context, request, view):
+ self.context = context
+ self.request = request
+ self.view = self.__parent__ = view
+
+ def update(self):
+ pass
+
+ def render(self):
+ return u'This is a cave painting'
+
+class MammothViewletManager(grok.MultiAdapter, WeightOrderedViewletManager):
+ grok.adapts(Mammoth, IMySkinLayer, IBrowserView)
+ grok.name('cavecolumn')
+
+ def __init__(self, context, request, view):
+ WeightOrderedViewletManager.__init__(self, context, request, view)
+
+ def update(self):
+ viewlets = zope.component.getAdapters(
+ (self.context, self.request, self.__parent__, self),
+ IViewlet)
+ self.viewlets = []
+ for viewlet in viewlets:
+ self.viewlets.append(viewlet[1])
+
+ def render(self):
+ return '\n'.join([s.render() for s in self.viewlets])
+
+class HelloWorldViewlet(grok.MultiAdapter):
+ grok.adapts(Mammoth, IMySkinLayer, IBrowserView, IViewletManager)
+ grok.implements(IViewlet)
+ grok.name('helloworld')
+ weight = 0
+
+ def __init__(self, context, request, view, manager):
+ self.__parent__ = view
+ self.context = context
+ self.request = request
+ self.manager = manager
+
+ def render(self):
+ return u'<p>Hello World</p>'
+
+class FirstProvider(grok.ContentProvider):
+ grok.name('provider.first')
+ grok.context(Mammoth)
+
+ def update(self):
+ pass
Property changes on: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/firstprovider.pt
===================================================================
--- grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/firstprovider.pt (rev 0)
+++ grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/firstprovider.pt 2007-06-30 19:58:55 UTC (rev 77271)
@@ -0,0 +1 @@
+<div>Way cool</div>
Added: grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/painting.pt
===================================================================
--- grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/painting.pt (rev 0)
+++ grok/branches/darrylcousins-martian-layers/src/grok/ftests/view/viewletmanager_templates/painting.pt 2007-06-30 19:58:55 UTC (rev 77271)
@@ -0,0 +1,8 @@
+<html>
+<body>
+<h1 tal:content="structure provider:cave">Hello, world!</h1>
+<div tal:content="structure provider:cavecolumn">Hello, world!</div>
+<div tal:content="structure provider:provider.first">Hello, world!</div>
+</body>
+</html>
+
More information about the Checkins
mailing list