Hi,

I  want to pass a value to a function for using it in a query
I made links  with this code in the calling grid


links = [lambda row: A(T('View flexi 
list'),_href=URL(show_flexlist,args=[row.id,0],user_signature=True)),lambda 
row: A(T('View flexi 
list'),_href=URL(show_flexlist,args=[row.id,1],user_signature=True))])



@auth.requires_login()
def index():
    db.type_article.articlename.writable=False
    db.articles.id.readable=db.articles.id.writable=False
    db.articles.cod_ref.readable=db.articles.cod_ref.writable=False
    db.articles.dossier.readable=db.articles.dossier.writable=False
    db.articles.conteneur.readable=db.articles.conteneur.writable=False
    db.articles.bulk_id.readable=db.articles.bulk_id.writable=False
    db.articles.isintegrated.readable=db.articles.isintegrated.writable=False
    
db.articles.id_stk_article.readable=db.articles.id_stk_article.writable=False
    db.articles.date_sortie.readable=db.articles.date_sortie.writable=False
    db.articles.detruit.readable=db.articles.detruit.writable=False
    db.type_article.id.readable=db.type_article.id.writable=False
    db.articles.depot_id.readable=db.articles.depot_id.writable=False
    db.type_article.id_narval.readable=db.type_article.id_narval.writable=False

    response.flash = T("Bonjour ")+auth.user.username
    request.title=T("Braid Logistics Europe")
    
myquery=(db.type_article.id==db.articles.condi_id)&(db.articles.depot_id==auth.user.id_depot)&(db.articles.isintegrated==False)
    myfields=[db.type_article.articlename]
    myheaders={'type_article.articlename':T('Type article')}
    default_sort_order=[db.type_article.articlename]
    hide_fields(db.articles, ['heatpad', 'wallpanel', 'forcecntnum', 
'id_stk_article', 'isintegrated','cntnumok'])
    type_articles=SQLFORM.grid(query=myquery
                               ,orderby=default_sort_order
                               ,deletable=False
                               ,editable=False
                               ,details=False
                               ,maxtextlength=64
                               ,paginate=25
                               ,create=False
                               ,fields=myfields
                               ,headers=myheaders
                               ,field_id=db.type_article.id
                               
,groupby=db.type_article.articlename|db.type_article.id
                               ,links = [lambda row: A(T('View flexi 
list'),_href=URL(show_flexlist,args=[row.id,0],user_signature=True)),lambda 
row: A(T('View flexi 
list'),_href=URL(show_flexlist,args=[row.id,1],user_signature=True))])

    return dict(message=T('Welcome to Web Braid 
stock!'),type_articles=type_articles)
@auth.requires_signature(hash_vars=True)
def show_flexlist():
    type_article = request.args(0, cast=int)
    #isintegrated=False
    isintegrated =request.args(1, cast=int)
    #isintegrated=int(request.vars['_bintegrate'])
    
Results=db(db.type_article.id==type_article).select(db.type_article.articlename)
    row=Results[0]
    ArticleName=row['articlename']
    response.flash =T('Depot:')+str(auth.user.id_depot)
    request.title=T("Braid Logistics Europe")
    if isintegrated==1 :
       bintegrated=True
    else:
        bintegrated=False
    
myquery=((db.articles.condi_id==type_article)&(db.articles.depot_id==auth.user.id_depot)&(db.articles.isintegrated==bintegrated))
    
#myfields={db.articles.cod_ref,db.articles.conteneur,db.articles.dossier,db.articles.id}
    #myheaders={'articles.cod_ref':T('Flexi 
Number'),'articles.conteneur':T('Conteneur Number'),'articles.dossier':T('Braid 
reference'),'articles.id':'ID'}
    
myfields=[db.articles.cod_ref,db.articles.conteneur,db.articles.dossier,db.articles.date_sortie,db.articles.detruit,db.articles.bulk_id,db.articles.cntnumok]
    
myheaders={'articles.detruit':T('Destroyed'),'articles.bulk_id':T('Bulkhead'),'articles.dossier':T('Braid
 reference'),'articles.date_sortie':T('Fitting 
Date'),'articles.conteneur':T('Conteneur Number'),'articles.cod_ref':T('Flexi 
Number')}
    default_sort_order=[db.articles.cod_ref]
    db.articles.cod_ref.writable=False
    db.articles.id.readable=False
    db.articles.cntnumok.readable=db.articles.cntnumok.writable=False
    
hide_fields(db.articles,['heatpad','wallpanel','forcecntnum','id_stk_article','isintegrated'])
    links = [lambda row: A(T('View 
Flexi'),_href=URL(show_flexi,args=[row.id,type_article],user_signature=True))]
    flexlist=SQLFORM.grid(query=myquery
                               ,orderby=default_sort_order
                               ,deletable=False
                               ,editable=False
                               ,details=False
                               ,maxtextlength=64
                               ,paginate=25
                               ,create=False
                               ,fields=myfields
                               ,headers=myheaders
                               ,user_signature=True
                               ,searchable=True]
                               ,args= [type_article,isintegrated]
                               ,links=links)
    return dict(message=ArticleName,flexlist=flexlist)

All work fine except when i use the search widget in the response grid, it go 
back on not autorized page.
I guess in this case the signature is not sent 

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to