@@ -500,10 +500,10 @@ def __init__(
500500
501501 # instance variables that will be computed
502502 self .db = query ._db # the database
503- self .query = query # the filter query
504- self .query2 = None # the query with additional filters
503+ self .query_init = query # the filter query
504+ self .query = query # the query with additional filters
505505 self .query_parms = safely (lambda : request .params , default = {})
506- self .search_query_error = None # error to be displayed in case failed search
506+ self .search_query_error = None # error to be displayed in case failed search
507507 self .T = T # the translator
508508 self .form_maker = form_maker # the object that makes forms
509509 self .referrer = None # page referring this one
@@ -599,22 +599,18 @@ def process(self):
599599 # apply the search query
600600 if not self .param .search_form and self .param .search_queries :
601601 search_type = safe_int (request .query .get ("search_type" , 0 ), default = 0 )
602- search_string = request .query .get ("search_string" )
602+ search_string = request .query .get ("search_string" )
603603 if search_type < len (self .param .search_queries ) and search_string :
604- _ , query_lambda , requires = self .param .search_queries [search_type ]
604+ _ , query_lambda , requires = self .param .search_queries [search_type ]
605605 if requires :
606606 search_string , self .search_query_error = requires (search_string )
607607 if not self .search_query_error :
608608 try :
609609 query = query_lambda (search_string )
610+ self .query = self .query_init & query
610611 except Exception as e :
611612 self .search_query_error = str (e )
612613
613- if not query :
614- self .query2 = self .query
615- else :
616- self .query2 = self .query & query
617-
618614 if self .record_id :
619615 self .record = self .table (self .record_id )
620616 if not self .record :
@@ -802,10 +798,10 @@ def compute(row, name=str(col)):
802798 if self .param .groupby or self .param .left :
803799 # need groupby fields in select to get proper count
804800 self .total_number_of_rows = len (
805- db (self .query2 ).select (db [self .tablename ]._id , ** select_params )
801+ db (self .query ).select (db [self .tablename ]._id , ** select_params )
806802 )
807803 else :
808- self .total_number_of_rows = db (self .query2 ).count ()
804+ self .total_number_of_rows = db (self .query ).count ()
809805
810806 # if at a high page number and then filter causes less records to be displayed, reset to page 1
811807 if (
@@ -824,7 +820,7 @@ def compute(row, name=str(col)):
824820 self .page_end = self .total_number_of_rows
825821
826822 # get the data
827- self .rows = db (self .query2 ).select (* self .needed_fields , ** select_params )
823+ self .rows = db (self .query ).select (* self .needed_fields , ** select_params )
828824
829825 self .number_of_pages = self .total_number_of_rows // self .param .rows_per_page
830826 if self .total_number_of_rows % self .param .rows_per_page > 0 :
@@ -990,9 +986,15 @@ def _make_default_form(self):
990986 tr .append (TD (submit , clear , _class = td_classes ))
991987 table = TABLE (tr , _class = self .get_style ("grid-search-form-table" ))
992988 if self .search_query_error :
993- table .append (TR (TD (self .search_query_error ,
994- _colspan = 3 if len (options )> 1 else 2 ,
995- _class = self .get_style ("grid-search-form-error" ))))
989+ table .append (
990+ TR (
991+ TD (
992+ self .search_query_error ,
993+ _colspan = 3 if len (options ) > 1 else 2 ,
994+ _class = self .get_style ("grid-search-form-error" ),
995+ )
996+ )
997+ )
996998 form .append (table )
997999 div .append (form )
9981000 return div
0 commit comments