Skip to content

Commit b7b2f53

Browse files
committed
fixed search in grid
1 parent a95a74d commit b7b2f53

3 files changed

Lines changed: 20 additions & 17 deletions

File tree

py4web/utils/grid.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,7 @@ def __init__(
491491
# instance variables that will be computed
492492
self.db = query._db # the database
493493
self.query = query # the filter query
494+
self.query2 = None # the query with additional filters
494495
self.query_parms = safely(lambda: request.params, default={})
495496
self.T = T # the translator
496497
self.form_maker = form_maker # the object that makes forms
@@ -562,13 +563,16 @@ def process(self):
562563
query_lambda = self.param.search_queries[search_type][1]
563564
try:
564565
query = query_lambda(search_string)
565-
except Exception:
566-
pass # flash a message here
566+
print(query)
567+
except Exception as e:
568+
import traceback
569+
print(traceback.format_exc())
570+
pass # TODO: display the error
567571

568572
if not query:
569-
query = self.query
573+
self.query2 = self.query
570574
else:
571-
query &= self.query
575+
self.query2 = self.query & query
572576

573577
self.mode = request.query.get("mode", "select")
574578
self.record_id = request.query.get("id")
@@ -779,10 +783,10 @@ def compute(row, name=str(col)):
779783
if self.param.groupby or self.param.left:
780784
# need groupby fields in select to get proper count
781785
self.total_number_of_rows = len(
782-
db(self.query).select(db[self.tablename]._id, **select_params)
786+
db(self.query2).select(db[self.tablename]._id, **select_params)
783787
)
784788
else:
785-
self.total_number_of_rows = db(self.query).count()
789+
self.total_number_of_rows = db(self.query2).count()
786790

787791
# if at a high page number and then filter causes less records to be displayed, reset to page 1
788792
if (
@@ -801,7 +805,7 @@ def compute(row, name=str(col)):
801805
self.page_end = self.total_number_of_rows
802806

803807
# get the data
804-
self.rows = db(self.query).select(*self.needed_fields, **select_params)
808+
self.rows = db(self.query2).select(*self.needed_fields, **select_params)
805809

806810
self.number_of_pages = self.total_number_of_rows // self.param.rows_per_page
807811
if self.total_number_of_rows % self.param.rows_per_page > 0:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies = [
2626
"pluralize >= 20240515.1",
2727
"rocket3 >= 20241225.1",
2828
"yatl >= 20230507.3",
29-
"pydal >= 20250501.2",
29+
"pydal >= 20250525.3",
3030
"watchgod >= 0.6",
3131
]
3232

uv.lock

Lines changed: 8 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)