I managed to put the link in the SQLFORM.factory, but I don't manage to use the form validation. The reason is that "start"and "end"must be defined when the html page is created (to put their values in "button"). Is this correct or am I missing something? Thanks Carlo
On Thursday, April 24, 2014 12:18:54 PM UTC+2, Oli wrote: > > > *example with a button. You can put the button in SQLFORM.factory:* > > def index(): > # in an new tab > # *_target='_blank'* > > * # set start and end for example with SQLFORM.factory* > > button = A('create a pdf-report in an new tab', _class="btn" , > _title=T("create PDF-report"), _href=URL("default","result"), args=[start, > end]), *_target='_blank'*) > > return dict(button=button) > def result(): > start = request.vars['start'] > end = request.vars['end'] > filename = os.path.join(request.folder,'private',str(uuid4())) > create_pdf(filename, db, start, end) > response.headers['Content-Type']='application/pdf' > data = open(filename,"rb").read() > os.unlink(filename) > return data > > > > Am Mittwoch, 23. April 2014 15:55:50 UTC+2 schrieb csavorgn: > >> Hi everyone, >> I'm using a SQLFORM.factory to get the data I need to generate a PDF file >> using ReportLab. >> I'm using a submit button to check for the data entered and to open a >> new page using redirect: >> >> redirect(URL("default","result", vars=dict(start=form.vars.date_start, >> end=form.vars.date_end))) >> >> In the controller default.py I defined >> def result(): >> start = request.vars['start'] >> end = request.vars['end'] >> filename = os.path.join(request.folder,'private',str(uuid4())) >> create_pdf(filename, db, start, end) >> response.headers['Content-Type']='application/pdf' >> data = open(filename,"rb").read() >> os.unlink(filename) >> return data >> >> (The code I'm using is more complex than this.) >> >> Maybe it is not the cleanest way to do this, but when I click on the >> button the temporary PDF opens on the same tab in the browser. >> >> In my app I would like to get a different behaviour: when I click on the >> submit button the PDF should open on a new tab. The PDF should be temporary >> as it is in my current code. >> How can I achieve the behaviour I want? >> >> Thanks >> >> Carlo >> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.