I am not convinced this is general enought but I like the idea. Let me think about it.
On Jun 3, 7:17 am, Iceberg <[email protected]> wrote: > Hi Massimo, > > I just came up with a handy myapp/views/generic.load, and I wonder > whether you will like to accept it as part of web2py scaffold. It is > already self-documented. > > <!-- Start of the generic.load --> > > {{ ''' > With this generic.load file, you can use same action to serve two > purposes. > > Example modified fromhttp://www.web2py.com/AlterEgo/default/show/252: > > def index(): > return { > 'part1':'hello world', > 'part2': LOAD( > url=URL(r=request,f='auxiliary.load'), # Notice the > ".load" extention > ajax=True), > } > > def auxiliary(): > form=SQLFORM.factory(Field('name')) > if form.accepts(request.vars): > return {'': "Hello %s" % form.vars.name} > return {'':form} # Need NOT to write it as "return form" any more! > > From now on, single auxiliary() can serve two > purposes:http://.../auxiliary.load serves as a raw component LOADed by other > actionhttp://.../auxiliary serves as a normal html page as usual > > # PS: Please keep all above explanation for people to know when and > how to use it. > # License: Public Domain > # Author: Iceberg at 21cn dot com > ''' > > }} > > {{ # Does NOT extend layout.html, purposely.}} > {{response.headers['Content-Type']='text/html'}} > {{if len(response._vars)==1 and not response._vars.keys()[0]:}} > {{=BEAUTIFY(response._vars.values()[0])}} {{ # To bypass the silly > colon }} > {{else:}} > {{=BEAUTIFY(response._vars)}} > {{pass}}

