[Checkins] SVN: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/ show layer based discrimintation of content providers
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Mon Jun 27 04:52:25 EDT 2011
Log message for revision 121982:
show layer based discrimintation of content providers
Changed:
D grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py
D grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider_templates/
A grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py
A grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer_templates/
-=-
Deleted: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py 2011-06-27 07:06:49 UTC (rev 121981)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py 2011-06-27 08:52:25 UTC (rev 121982)
@@ -1,69 +0,0 @@
-"""
-=====================
-Test Content Provider
-=====================
-
-This doctest will test the various grok content provider registrations. Grok
-viewlets offer the same flexibility as zope3, allowing you to register viewlets
-for a particular view, context, layer, and permission.
-
-Set up a content object in the application root::
-
- >>> root = getRootFolder()
- >>> root['wilma'] = CaveWoman()
- >>> root['fred'] = CaveMan()
-
-Traverse to the view on the model object. We get the viewlets
-registered for the default layer, with the anybody permission::
-
- >>> from zope.app.wsgi.testlayer import Browser
- >>> browser = Browser()
- >>> browser.handleErrors = False
- >>> browser.open("http://localhost/wilma/@@caveview")
- >>> print browser.contents
- Soup pot
-
-"""
-
-from zope.interface import Interface
-from zope.publisher.interfaces.browser import IDefaultBrowserLayer
-import grokcore.view as grok
-
-class CaveWoman(grok.Context):
- pass
-
-class CaveMan(grok.Context):
- pass
-
-class CaveView(grok.View):
- grok.context(Interface)
-
-class FireView(grok.View):
- grok.context(Interface)
- grok.template('caveview')
-
-class Pot(grok.ContentProvider):
- grok.context(Interface)
-
- def render(self):
- return u"Soup pot"
-
-class GoldPot(grok.ContentProvider):
- grok.name('pot')
- grok.context(Interface)
- grok.require('bone.gold')
- grok.view(FireView)
-
- def render(self):
- return u"Gold Soup Pot"
-
-class IBoneLayer(IDefaultBrowserLayer):
- grok.skin('boneskin')
-
-class LayeredPot(grok.ContentProvider):
- grok.name('pot')
- grok.context(Interface)
- grok.layer(IBoneLayer)
-
- def render(self):
- return u"Layered pot"
Copied: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py (from rev 121968, grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py)
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py (rev 0)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py 2011-06-27 08:52:25 UTC (rev 121982)
@@ -0,0 +1,51 @@
+"""
+Content providers can be discriminated based on layer too::
+
+ >>> root = getRootFolder()
+ >>> root['wilma'] = CaveWoman()
+
+Traverse to the view on the model object. We get the content provider
+registered for the default layer::
+
+ >>> from zope.app.wsgi.testlayer import Browser
+ >>> browser = Browser()
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/wilma/@@caveview")
+ >>> print browser.contents
+ Soup pot
+
+Traverse to the view on the model object. We get the content provider
+registered for the "boneskin" layer::
+
+ >>> browser.open("http://localhost/++skin++boneskin/wilma/@@caveview")
+ >>> print browser.contents
+ Layered pot
+
+"""
+
+from zope.interface import Interface
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+import grokcore.view as grok
+
+class CaveWoman(grok.Context):
+ pass
+
+class CaveView(grok.View):
+ grok.context(Interface)
+
+class Pot(grok.ContentProvider):
+ grok.context(Interface)
+
+ def render(self):
+ return u"Soup pot"
+
+class IBoneLayer(IDefaultBrowserLayer):
+ grok.skin('boneskin')
+
+class LayeredPot(grok.ContentProvider):
+ grok.name('pot')
+ grok.context(Interface)
+ grok.layer(IBoneLayer)
+
+ def render(self):
+ return u"Layered pot"
More information about the checkins
mailing list