Hi, My app goes forward, I have plaisure to develop with web2py. But sometimes I don't find myself the solution for very specific search.
My app works well now, I can fill a request, add/remove parts, add/remove attached, calculate price, send this request to collect signatures .... Now I try to display in the first "index" page (a SQLFORM.grid), only the requests that interest the user who is at the keybord (for the guitar it's someone else). The criteria are : * only the requests that are not closed (and another page or another filter to display old closed requests) * only the requests that were written by this user * OR the requests that this user HAS already signed OR those that this user HAS TO sign OR those that this user WILL HAVE to sign. A request (table = "Demande") has to be signed by many persons and managers (not always the same) => table = "Workflow" (shortcut TDW). In the first version of my app, each user see all the requests (not closed), and the SQLFORM.grid works well. form = SQLFORM.grid((dbW.Demande.Statut!='Close'), ...) In the second version, the user can see his own requests (that he has created) AND also those he HAS TO sign. form = SQLFORM.grid((dbW.Demande.Statut!='Close') & ((dbW.Demande.CreatedBy==session.CurrentUser) |(dbW.Demande.NextSign==session.CurrentUser)), But now I want to show also the requests that he HAS already signed, OR requests that he WILL HAVE to sign. FIRST TRY : form = SQLFORM.grid((dbW.Demande.Statut!='Close') & ((dbW.Demande.CreatedBy==session.CurrentUser) |(dbW.Demande.NumDA in (select NumDA from TDW where Responsable==session.CurrentUser)), I already knew that this syntax doesn't work. SECOND TRY : liste_DA_filtre = [] for DA in dbW(dbW.TDW.Responsable==session.CurrentUser).select(dbW.TDW. NumDA): liste_DA_filtre.append(DA.NumDA) form = SQLFORM.grid((dbW.Demande.Statut!='Close') & ((dbW.Demande.CreatedBy==session.CurrentUser) |(dbW.Demande.NumDA in liste_DA_filtre)), Is there any way to do a "in()" ? THIRD TRY : liste_DA_filtre = [] for DA in dbW(dbW.TDW.Responsable==session.CurrentUser).select(dbW.TDW. NumDA): liste_DA_filtre.append(DA.NumDA) selection_DA = dbW(dbW.WFDA_DemAchat).select().find( lambda row: row.Statut!='Close' and (row.CreatedBy==session. CurrentUser or row.NumDA in liste_DA_filtre)) form = SQLFORM.grid((selection_DA, ...) I know that this syntax is not correct : SQLFORM.gris needs a request, not a set of data. But I wrote this only to check the data that are filtered... and this is exactly the rows I'm looking for. -- 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.