Thanks. I will merge this patch!

On Thursday, 15 January 2015 04:01:24 UTC-6, Prasad Muley wrote:
>
> Hello Massimo and Dexter,
>
>         I've a fix for this issue. I've tested it and attached the diff 
> file. PFA. 
>
> Let me know if I missed anything. 
>
> Btw Can I send pull request?
>
> On Saturday, October 25, 2014 at 5:17:24 AM UTC+5:30, Massimo Di Pierro 
> wrote:
>>
>> Hello Dexter, I think your are right. I will review this asap. Meanwhile, 
>> would you be able to open an issue with a link to this thread so we can 
>> more easily keep track. Thanks!.
>>
>> Massimo
>>
>> On Thursday, 23 October 2014 13:23:16 UTC-5, Dexter Hadley wrote:
>>>
>>> Hi All,
>>>
>>> This is my first time posting a question, so thanks to Massimo and they 
>>> whole community for making web2py.  Its great!
>>>
>>> I am trying to export results from a customized full-text search using 
>>> SQLFORM.grid.  My backend is a Postgres db, and I successfully define 
>>> "search_widget" and "searchable" functions that are passed to the 
>>> SQLFORM.grid to do the full-text search.  It will works pretty well on the 
>>> web app.  However, once I click the export button, SQLFORM.grid apparently 
>>> recreates the query using the default SQLFORM.build_query and ignores the 
>>> correct query which I define in searchable.  After poking around in 
>>> sqlhtml.py, I found this is so because the exporter only conditions on 
>>> request.vars.keywords before calling  SQLFORM.build_query, and it does not 
>>> check for callable(searchable) which I think it should do.  In fact, I 
>>> fixed it by editing sqlhtml.py to force the exporter to condition on 
>>> (request.vars.keywords *and callable(searchable)*) before setting up 
>>> the rows object to export.  The code I added is in bold below (on line 2298 
>>> of sqlhtml.py):
>>>
>>>                 if request.vars.keywords *and callable(searchable)*:
>>>                     try:
>>>                         #the query should be constructed using 
>>> searchable fields but not virtual fields
>>>                         sfields = reduce(lambda a, b: a + b,
>>>                             [[f for f in t if f.readable and not 
>>> isinstance(f, Field.Virtual)] for t in tables])
>>>                         dbset = dbset(SQLFORM.build_query(
>>>                             sfields, request.vars.get('keywords', '')))
>>>                         rows = dbset.select(left=left, orderby=orderby,
>>>                                             cacheable=True, 
>>> *selectable_columns)
>>>                     except Exception, e:
>>>                         response.flash = T('Internal Error')
>>>                         rows = []
>>>                 else:
>>>                     rows = dbset.select(left=left, orderby=orderby,
>>>                                         cacheable=True, 
>>> *selectable_columns)
>>>
>>> Is this a bug or is there a better way to do an export of customized 
>>> search results using SQLFORM.grid?  I'm using the current version of 
>>> everything (web2py 2.9.11, Postgres 9.3, Python 2.7.8).  Thx again,
>>>
>>> dex*
>>>
>>

-- 
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.

Reply via email to