awesome =0 -- Thadeus
On Sat, Aug 14, 2010 at 2:58 AM, Paul Gerrard <[email protected]> wrote: > Heres my solution - works a treat: > > #Controller.py > if request.vars.get('printMode', None): > response.layout = 'layoutPrint.html' > printMode=True > else: > response.layout = 'layout.html' > printMode=False > > > # all views > {{extend response.layout}} > > I use the printMode Boolean to detemine whether to display the > "Printer Friendly" link on the page. > > Many thanksThadeus. > > > On Aug 13, 11:07 pm, Paul Gerrard <[email protected]> wrote: >> I suspected that I had done something that worked 'by chance' and the >> new version caught me out. :) >> >> Thanks for the tip - I'll try it. >> >> Paul G >> >> On Aug 13, 5:30 pm, Thadeus Burgess <[email protected]> wrote: >> >> >> >> > Odd... it should *technically* extend from the last seen version of >> > extend regardless of where it is located. >> >> > Also, I don't understand how this worked pre 1.80 either. >> >> > The templates are parsed before any of the python statements are even >> > known or executed, this just should have never worked. >> >> > I also don't see an obvious way of making this work, since the >> > template would have to know the context of python as its parsing. >> >> > Try re-designing how you handle this. >> >> > in controllers.py or models.py >> > # Just assign a variable to the name of the template you want to extend >> > response.printMode = 'layoutPrint.html' if >> > request.vars.get('printMode', None) else 'layout.html' >> >> > in templates.py >> > {{extend response.printMode}} >> >> > -- >> > Thadeus >> >> > On Fri, Aug 13, 2010 at 10:31 AM, Paul Gerrard >> >> > <[email protected]> wrote: >> > > Hi, >> >> > > I have a lot of views in my system with the following code at the top >> > > of the view html: >> >> > > {{import string}} >> >> > > {{if request.vars and 'printMode' in request.vars:}} >> > > {{printMode=request.vars['printMode']}} >> > > {{else:}} >> > > {{printMode=None}} >> > > {{pass}} >> >> > > {{if printMode:}} >> > > {{extend 'layoutPrint.html'}} >> > > {{else:}} >> > > {{extend 'layout.html'}} >> > > {{pass}} >> >> > > ... the rest of the layout HTML etc. >> >> > > In version 1.79.1 it worked fine. If there was no printMode var in the >> > > query string, I got the standard layout. If there was a PrintMode var, >> > > I got a simpler layout without the headers, menus etc. for printing.. >> >> > > In 1.82.1 it doesn't work at all. It looks like neither layout is >> > > invoked and all my pages look terrible with no formatting (because no >> > > CSS) at all. >> >> > > Any suggestions (or I'll ave to regress back to 1.79.1). :O(- Hide >> > > quoted text - >> >> > - Show quoted text -- Hide quoted text - >> >> - Show quoted text - >

