summaryrefslogtreecommitdiff
path: root/doc/web/howto/listings/subviews-1.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/web/howto/listings/subviews-1.py')
-rw-r--r--doc/web/howto/listings/subviews-1.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/web/howto/listings/subviews-1.py b/doc/web/howto/listings/subviews-1.py
new file mode 100644
index 0000000..55538ec
--- /dev/null
+++ b/doc/web/howto/listings/subviews-1.py
@@ -0,0 +1,27 @@
+from twisted.web.template import (
+ XMLFile, TagLoader, Element, renderer, flattenString)
+from twisted.python.filepath import FilePath
+
+class WidgetsElement(Element):
+ loader = XMLFile(FilePath('subviews-1.xml'))
+
+ widgetData = ['gadget', 'contraption', 'gizmo', 'doohickey']
+
+ @renderer
+ def widgets(self, request, tag):
+ for widget in self.widgetData:
+ yield WidgetElement(TagLoader(tag), widget)
+
+class WidgetElement(Element):
+ def __init__(self, loader, name):
+ Element.__init__(self, loader)
+ self._name = name
+
+ @renderer
+ def name(self, request, tag):
+ return tag(self._name)
+
+def printResult(result):
+ print result
+
+flattenString(None, WidgetsElement()).addCallback(printResult)