feat: Implement server-side search for users

This commit is contained in:
ReturnFI
2025-11-08 19:51:42 +00:00
parent 772d363fa1
commit 7ddb30f75f
4 changed files with 311 additions and 171 deletions

View File

@ -65,4 +65,32 @@ async def users_root(
templates: Jinja2Templates = Depends(get_templates),
limit: int = Cookie(default=50, ge=1)
):
return await get_users_page(request, templates, 1, limit)
return await get_users_page(request, templates, 1, limit)
@router.get("/search/", name="search_users")
async def search_users(
request: Request,
q: str = Query(""),
templates: Jinja2Templates = Depends(get_templates)
):
try:
if not q:
all_users_data = []
else:
all_users_data = cli_api.list_users() or []
query = q.lower()
filtered_users_data = [
user_data for user_data in all_users_data
if query in user_data.get('username', '').lower() or query in user_data.get('note', '').lower()
]
users: list[User] = [User.from_dict(user_data.get('username', ''), user_data) for user_data in filtered_users_data]
return templates.TemplateResponse(
'users_rows.html',
{'request': request, 'users': users}
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))