diff options
Diffstat (limited to 'doc/web/howto/listings/subviews-1.py')
-rw-r--r-- | doc/web/howto/listings/subviews-1.py | 27 |
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) |