feat: Enhance parks listing with view mode toggle and search functionality

- Implemented a consolidated search bar for parks with live search capabilities.
- Added view mode toggle between grid and list views for better user experience.
- Updated park listing template to support dynamic rendering based on selected view mode.
- Improved pagination controls with HTMX for seamless navigation.
- Fixed import paths in parks and rides API to resolve 501 errors, ensuring proper functionality.
- Documented changes and integration requirements for frontend compatibility.
This commit is contained in:
pacnpal
2025-08-31 11:39:14 -04:00
parent 5bf351fd2b
commit 91906e0d57
12 changed files with 654 additions and 140 deletions

View File

@@ -26,8 +26,7 @@ from drf_spectacular.types import OpenApiTypes
# Import models
try:
from apps.parks.models import Park
from apps.companies.models import Company
from apps.parks.models import Park, Company
MODELS_AVAILABLE = True
except Exception:
Park = None # type: ignore
@@ -165,9 +164,10 @@ class ParkListCreateAPIView(APIView):
qs = Park.objects.all().select_related(
"operator", "property_owner", "location"
).prefetch_related("rides").annotate(
ride_count=Count('rides'),
roller_coaster_count=Count('rides', filter=Q(rides__category='RC')),
average_rating=Avg('reviews__rating')
ride_count_calculated=Count('rides'),
roller_coaster_count_calculated=Count(
'rides', filter=Q(rides__category='RC')),
average_rating_calculated=Avg('reviews__rating')
)
# Apply comprehensive filtering