+1 

this would be a great and needed feature... just stumbled into this 
problem, and working around it :)

On Friday, August 31, 2012 5:48:17 PM UTC-4, Massimo Di Pierro wrote:
>
> 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