[Twisted-Python] Woven page instances deferring to each other...

Stuart Hungerford stuart.hungerford at anu.edu.au
Tue Oct 7 23:33:41 MDT 2003


Hi all,

I have a Twisted web application that uses Woven to generate
various HTML pages.  The application knows about a bunch of
"error" states which have one Woven page instance per state:


class error_state_1(twisted.web.woven.page.Page):
     isLeaf = 1
     templateFile = ...

     # usual wmfactory_ and wvupdate_ methods


class error_state_2(twisted.web.woven.page.Page):
     isLeaf = 1
     templateFile = ...

     # usual wmfactory_ and wvupdate_ methods


class error_state_3(twisted.web.woven.page.Page):
     isLeaf = 1
     templateFile = ...

     # usual wmfactory_ and wvupdate_ methods


In another Woven page the application can detect these
"error" states and I would like to optionally "defer" the HTML
generation to the existing error pages:


class application_page(twisted.web.woven.page.Page):
     isLeaf = 1
     templateFile = ...

     # methods

     def wvupdate_content(self, request, node, data):
         if error_state_1:
             # defer to error_state_1 page
         elif error_state_2:
             # defer to error_state_2 page
         ...
         else:
             # situation normal, generate content XHTML


In practice there are a number of application pages and they
may all need to detect and report the "error" conditions.

So, my question is what's the best way to do this kind of thing
in Woven?  I seem to recall something about expanding a Woven
"macro" page being discussed on the list, but I'm still grepping
for that.

Any advice much appreciated,



Cheers,

Stu

--
:: Stuart Hungerford (stuart.hungerford at anu.edu.au)
:: ANU Internet Futures Group





More information about the Twisted-Python mailing list