Enhance search functionality with pagination and improve eager loading in utils

This commit is contained in:
Yaro Kasear 2025-06-13 16:16:56 -05:00
parent eb7e446e56
commit cffdc27724
5 changed files with 56 additions and 46 deletions

View file

@ -316,6 +316,7 @@ def search():
if not query:
return redirect(url_for('index'))
InventoryAlias = aliased(Inventory)
UserAlias = aliased(User)
inventory_query = eager_load_inventory_relationships(db.session.query(Inventory).join(UserAlias, Inventory.owner)).filter(
@ -334,11 +335,14 @@ def search():
User.last_name.ilike(f"%{query}%")
))
user_pagination = make_paginated_data(user_query, user_page)
worklog_query = eager_load_worklog_relationships(db.session.query(WorkLog).join(UserAlias, WorkLog.contact)).filter(
worklog_query = eager_load_worklog_relationships(db.session.query(WorkLog).join(UserAlias, WorkLog.contact).join(InventoryAlias, WorkLog.work_item)).filter(
or_(
WorkLog.notes.ilike(f"%{query}%"),
UserAlias.first_name.ilike(f"%{query}%"),
UserAlias.last_name.ilike(f"%{query}%")
UserAlias.last_name.ilike(f"%{query}%"),
InventoryAlias.inventory_name.ilike(f"%{query}%"),
InventoryAlias.serial.ilike(f"%{query}%"),
InventoryAlias.barcode.ilike(f"%{query}%")
))
worklog_pagination = make_paginated_data(worklog_query, worklog_page)