Hi Jim, Thanks for reply.
1. I will try your example of query/contraints. 2. about represent/lambda issue: i get it working with a workaround, but I think it could be easier. 3. about linked_tables: it works with grid/list, but in view/edit it shows all linked tables. I have some cases I dont want the user see all linked tables, just one or two of them. Regards. 2011/12/26 Jim Steil <[email protected]> > I don't know why you're having the problems you are. > > Regarding the lambda issue, I too have noticed the change, but thought it > worked throughout web2py to always pass the row argument. However, I'm no > longer using crud so I wouldn't notice that. > > Linked tables are working for me. What do you mean when you say it > doesn't work for view and edit? > > Constraints has been working for me - here is a sample: > > # Build query > queries = [] > constraints = None > if searchText and searchText .strip() != '': > queries.append(db.asset.description.contains(searchText)) > if assetTypeId and assetTypeId > 0: > queries.append(db.asset.assetTypeId==assetTypeId) > if len(queries) > 0: > query = reduce(lambda a,b:(a&b),queries) > constraints={'asset':query} > > # Setup search forms > searchForms = {'asset':assetSearch} > > grid = SQLFORM.smartgrid(db.asset, fields=fields, > constraints=constraints, orderby=orderby, > create=create, details=details, > editable=editable, deletable=deletable, > csv=False, > search_widget={'asset':assetSearch}, > searchable=True, > paginate=15, maxtextlength=45) > > All of these work ok for me. Possibly your use cases are different that > mine. Could you share some detail about what you are seeing that isn't > working for you? > > -Jim > > > On 12/26/2011 8:23 AM, Alexandre Andrade wrote: > > I'm trying to use smartgrid in a app, and could be sucessful in most > parts. > But there are some things stopping, so I'm here asking for help > > 1. The old way of use lambda in represent was > > represent = lambda field: get_atividade(field) > > and now, in some parts of smartgrid and book V4, look as: > > represent = lambda field,row : get_atividade(field) > > the last works with the grid, but not in form to view and crud. > > I solved this using a if statement, but I think that could be implemented > one way to do use represent without setting it every time. > > > > 2. The linked_tables settings works for grid, but not for form (view and > edit) . I looked at code (gluon/sqlhtml.py#..smartgrid) > , and found this: > > if linked_tables is None or referee in linked_tables: > field.represent = lambda > id,r=None,referee=referee,rep=field.represent: A(callable(rep) and rep(id) > or > id,_class=trap_class(),_href=URL(args=request.args[:nargs]+['view',referee,id], > user_signature=user_signature)) > > i think referee is a way to know if is viewing or edit form, but it always > show all the linked_tables, so linked_tables settings is uselless. I think > it could remove the second part of if to properly use the settings way. > > 3. I need to show only some registers in a grid. But whiles the docs talk > about the constraints settings, i cant find a example of query to make it > work. A workaround was use the keywords (as in user made query, but it has > the disavantage of show the query in the search field. > Could someone provide a example of using constraints? > > > -- > Atenciosamente > > > Alexandre Andrade > Hipercenter.com Classificados Gratuitos > > -- Atenciosamente Alexandre Andrade Hipercenter.com Classificados Gratuitos

