grid uses signed links by default (otherwise, you could access all data just changing the url). Make sure that all links fiddling with grid "own" links (such as lining directyl to the edit action of some record) are signed. Also, grid uses request.args to detect what you're trying to do, so if you want to use something like /app/default/index/whatever as a "base url", you should pass also args=request.args[:1] to tell the grid that it should only consider what comes after the "whatever".
On Sunday, October 13, 2013 8:24:15 PM UTC+2, Gael Princivalle wrote: > > Tim, Niphlod thank you for your answers. @Niphlod "Luke" means that's I'm > a skywalker ? I would like to ! > Components are pretty useful, I've tried the documentation tutorial, > that's ok. > I'm still having some problems on this topic. > 1/My left side bar is under the grid > 2/I don't reach to give some args to the grid. As args I've just got to > give a category number. I've made a test link with "1". If I load only the > .load file clicking on the link it show al rows. With the .load file inside > the .html file, it returns me this message "not authorized". > > Here is my hp.load file in a dedicated component folder called hp: > {{left_sidebar_enabled=True,}} > {{=grid}} > <!-- Here I've made a test link for showing rows that have 1 for category. > In the future all the vertical side menu will have similar links --> > {{=A('Test',callback=URL('hp.load', args='1'))}} > {{block left_sidebar}} > <!--...My left side menu --> > > My dedicated controller hp.py: > def hp(): > #I don't want to show this field. I'm gone take care of it under with > the lambda function > db.models.pdf_path.readable = False > if request.args(0): #If there's an arg, it means that I have to make a > query with this category number > query = db.models.category==request.args(0) > else: #Else, I have to show all rows > query = db.models > fields = > (db.models.code,db.models.category,db.models.description_it,db.models.pdf_path) > #I set my headers > headers = {'models.code': T('Product model'), > 'models.category': T('Category'), > 'models.description_it': T('Description'), > 'models.pdf_path': 'pdf_path' } > #Here I take care about pdf_path for having a link on it. > links = [dict(header=T('Catalogue'), body=lambda row: A('Download', > _href=row.pdf_path, _target='_blank'))] > maxtextlengths={'models.code': 6, 'models.description_it': 120} > #Here is my construction grid > grid = SQLFORM.grid(query, headers=headers, fields=fields, csv=False, > maxtextlengths=maxtextlengths, orderby=db.models.code, > links=links,links_in_grid=True) > return dict(grid=grid) > > My h_products.html view: > {{extend 'layout.html'}} > {{=LOAD('hp','hp.load',ajax=True)}} > > How can I resolve these problems ? > > Il giorno giovedì 10 ottobre 2013 20:45:45 UTC+2, Tim Richardson ha > scritto: >> >> A web2py component will make the grid controlled by ajax, which means you >> can reload it from your page with javascript when some event happens, and >> that reloading is done the ajax way, without reloading the entire page. And >> there's more. Read about components in the book. > > -- 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/groups/opt_out.