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

Reply via email to