Merge pull request #407 from martenson/fix-ts-search-paging

fix paging issue with whoosh due to missing str to int conversion
This commit is contained in:
Daniel Blankenberg
2015-06-29 21:57:10 -04:00
4 changed files with 20 additions and 2 deletions
@@ -357,6 +357,10 @@ class RepositoriesController( BaseAPIController ):
q = kwd.get( 'q', '' )
if q:
page = kwd.get( 'page', 1 )
try:
page = int( page )
except ValueError:
raise RequestParameterInvalidException( 'The "page" requested has to be an integer.' )
return_jsonp = util.asbool( kwd.get( 'jsonp', False ) )
callback = kwd.get( 'callback', 'callback' )
search_results = self._search( trans, q, page )
@@ -46,6 +46,10 @@ class ToolsController( BaseAPIController ):
raise NotImplemented( 'Listing of all the tools is not implemented. Provide parameter "q" to search instead.' )
else:
page = kwd.get( 'page', 1 )
try:
page = int( page )
except ValueError:
raise RequestParameterInvalidException( 'The "page" requested has to be an integer.' )
return_jsonp = util.asbool( kwd.get( 'jsonp', False ) )
callback = kwd.get( 'callback', 'callback' )
search_results = self._search( trans, q, page )
@@ -3,6 +3,7 @@ import datetime
from galaxy import exceptions
from galaxy import eggs
from galaxy.webapps.tool_shed import model
from galaxy.exceptions import ObjectNotFound
import logging
log = logging.getLogger( __name__ )
@@ -100,7 +101,11 @@ class RepoSearch( object ):
'repo_owner_username' ], schema = schema )
user_query = parser.parse( '*' + search_term + '*' )
hits = searcher.search_page( user_query, page, pagelen = 10, terms = True )
try:
hits = searcher.search_page( user_query, page, pagelen = 10, terms = True )
except ValueError:
raise ObjectNotFound( 'The requested page does not exist.' )
log.debug( 'searching for: #' + str( search_term ) )
log.debug( 'total hits: ' + str( len( hits ) ) )
@@ -6,6 +6,7 @@ from galaxy import exceptions
from galaxy import eggs
from galaxy import web
from galaxy.webapps.tool_shed import model
from galaxy.exceptions import ObjectNotFound
eggs.require( "Whoosh" )
import whoosh.index
from whoosh import scoring
@@ -60,7 +61,11 @@ class ToolSearch( object ):
'repo_owner_username' ], schema = tool_schema )
user_query = parser.parse( '*' + search_term + '*' )
hits = searcher.search_page( user_query, page, pagelen = 10, terms = True )
try:
hits = searcher.search_page( user_query, page, pagelen = 10, terms = True )
except ValueError:
raise ObjectNotFound( 'The requested page does not exist.' )
log.debug( 'searching tools for: #' + str( search_term ) )
log.debug( 'total hits: ' + str( len( hits ) ) )