[Checkins] SVN: grok/branches/snowsprint-viewlets2/src/grok/ Added
tests for using the grok.order() directive on viewlets.
Tim TerlegÃÂ¥rd
tim.terlegard at valentinewebsystems.se
Thu Feb 28 01:47:39 EST 2008
Log message for revision 84358:
Added tests for using the grok.order() directive on viewlets.
Changed:
U grok/branches/snowsprint-viewlets2/src/grok/components.py
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order.py
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order_templates/
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order_templates/orderview.pt
-=-
Modified: grok/branches/snowsprint-viewlets2/src/grok/components.py
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/components.py 2008-02-28 01:46:51 UTC (rev 84357)
+++ grok/branches/snowsprint-viewlets2/src/grok/components.py 2008-02-28 06:47:36 UTC (rev 84358)
@@ -16,7 +16,6 @@
import sys
import os
import persistent
-import urllib
import datetime
import warnings
import pytz
@@ -634,7 +633,8 @@
#return self.template(viewlets=self.viewlets)
return self._render_template()
else:
- return u'\n'.join([viewlet.render() for viewlet in self.viewlets])
+ viewlets = util.sort_components(self.viewlets)
+ return u'\n'.join([viewlet.render() for viewlet in viewlets])
@property
Added: grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order.py
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order.py (rev 0)
+++ grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order.py 2008-02-28 06:47:36 UTC (rev 84358)
@@ -0,0 +1,84 @@
+"""
+
+==================
+Test viewlet order
+==================
+
+If one wants the viewlets rendered in a certain order it's possible
+to use the grok.order() directive.
+
+Set up a content object in the application root::
+
+ >>> root = getRootFolder()
+ >>> root['fred'] = Fred()
+
+Traverse to the view on the model object. We get the viewlets
+registered for the default layer, with the anybody permission::
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/fred/@@orderview")
+ >>> print browser.contents
+ Gold
+ Bone
+ Fred
+ Cave
+ Wilma
+ Barney
+ <BLANKLINE>
+"""
+
+import grok
+
+class Fred(grok.Model):
+ pass
+
+class OrderView(grok.View):
+ pass
+
+class CaveManager(grok.ViewletManager):
+ grok.view(OrderView)
+ grok.name('cave')
+
+class CaveViewlet(grok.Viewlet):
+ grok.order(30)
+ grok.viewletmanager(CaveManager)
+
+ def render(self):
+ return "Cave"
+
+class BarneyViewlet(grok.Viewlet):
+ grok.order(60)
+ grok.viewletmanager(CaveManager)
+
+ def render(self):
+ return "Barney"
+
+class BoneViewlet(grok.Viewlet):
+ grok.order(10)
+ grok.viewletmanager(CaveManager)
+
+ def render(self):
+ return "Bone"
+
+class WilmaViewlet(grok.Viewlet):
+ grok.order(50)
+ grok.viewletmanager(CaveManager)
+
+ def render(self):
+ return "Wilma"
+
+class GoldViewlet(grok.Viewlet):
+ grok.order(1)
+ grok.viewletmanager(CaveManager)
+
+ def render(self):
+ return "Gold"
+
+class FredViewlet(grok.Viewlet):
+ grok.order(20)
+ grok.viewletmanager(CaveManager)
+
+ def render(self):
+ return "Fred"
Added: grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order_templates/orderview.pt
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order_templates/orderview.pt (rev 0)
+++ grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/order_templates/orderview.pt 2008-02-28 06:47:36 UTC (rev 84358)
@@ -0,0 +1 @@
+<div tal:replace="structure provider:cave" />
More information about the Checkins
mailing list