Implement park search suggestions: add autocomplete functionality and improve search input handling

This commit is contained in:
pacnpal
2025-02-21 20:36:12 -05:00
parent e4959b7a04
commit 4d145ebabe
4 changed files with 108 additions and 13 deletions

32
parks/views_search.py Normal file
View File

@@ -0,0 +1,32 @@
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render
from .filters import ParkFilter
from .querysets import get_base_park_queryset
def suggest_parks(request: HttpRequest) -> HttpResponse:
"""Return park search suggestions as a dropdown"""
try:
query = request.GET.get('search', '').strip()
if not query or len(query) < 2:
return HttpResponse('')
# Get current view mode from request
current_view_mode = request.GET.get('view_mode', 'grid')
park_filter = ParkFilter({
'search': query
}, queryset=get_base_park_queryset())
parks = park_filter.qs[:8] # Limit to 8 suggestions
response = render(
request,
'parks/partials/search_suggestions.html',
{
'suggestions': parks,
'view_mode': current_view_mode
}
)
response['HX-Trigger'] = 'showSuggestions'
return response
except Exception as e:
return HttpResponse(f'Error getting suggestions: {str(e)}')