Hello Mike,

thanks for your patch? Would you please attach it to a google code issue so 
we do not forget. We cannot add new feaures until all 2.0.x issues have 
been resolved.

On Friday, August 31, 2012 2:41:30 PM UTC-5, Mike Leone wrote:
>
> Hello,
>
> We're building a web2py application that leverages SQLFORM.smartgrid 
> heavily.  Out of the box, this does not support filtering on 1:M 
> relationships, or reference fields on the model. We understand the concerns 
> about this: It could potentially be a huge performance hit, especially if 
> the related table has a large number of rows.
>
> On the other hand, this functionality is very valuable. Being able to 
> filter on related tables is a very common need in applications.  Often, 
> users need to filter on "lookup" tables that have a relatively small number 
> of rows, and the performance hit is negligible. This is a very common 
> feature in Django, and in Rails admin interfaces like ActiveScaffold and 
> RailsAdmin.
>
> Example:
>
> Given a model like this:
>
> db.define_table('book',
>     Field('user_id', 'reference auth_user'),
>     Field('title'),
>     Field('genre'))
>
> And a controller like this:
>
> def index():
>     grid = SQLFORM.smartgrid(db.book)
>     return dict(grid=grid)
>
> The query interface will look like this by default:
> http://i49.tinypic.com/2ugjt02.jpg
>
> Note how this includes title and genre, but not the auth_user reference.
>
> We patched web2py to allow to for 1:M reference fields in the query 
> interface. The resulting interface and generated query look something like 
> this:
>
> http://i46.tinypic.com/28taq74.png
>
> Here is our simple patch to allow searching on reference fields like this:
>
> https://gist.github.com/ff543a5c6d3bc14b9079
>
> This is obviously NOT ready for production; it's a simple proof of 
> concept.  Note the potentially very expensive "ALL" query. Because of the 
> performance risks, something like this only makes sense if developers can 
> opt in, i.e. explicitly say so if they want to include a given reference 
> field in the query interface.
>
> 1. Would the web2py maintiners be interested in a feature like this if it 
> is opt-in?  I'm willing to devote some time to submit a more robust patch 
> if I could get some guidance.
>
> 2. I also have a simple implementation for querying on list:reference 
> fields that I can share as well.
>
> Finally, I just want to thank the web2py team. I've really enjoyed using 
> the framework and hope to help out as much as I can.
>
> Thanks,
> Mike Leone
> Principal, Engineering
> Panoptic Development, Inc.
>

-- 



Reply via email to