mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 03:51:09 -05:00
- Added `useRideFiltering` composable for managing ride filters and fetching rides from the API. - Created `useParkRideFiltering` for park-specific ride filtering. - Developed `useTheme` composable for theme management with localStorage support. - Established `rideFiltering` Pinia store for centralized state management of ride filters and UI state. - Defined enhanced filter types in `filters.ts` for better type safety and clarity. - Built `RideFilteringPage.vue` to provide a user interface for filtering rides with responsive design. - Integrated filter sidebar and ride list display components for a cohesive user experience. - Added support for filter presets and search suggestions. - Implemented computed properties for active filters, average ratings, and operating counts.
84 lines
2.5 KiB
Python
84 lines
2.5 KiB
Python
from django.urls import path, include
|
|
from . import views
|
|
|
|
app_name = "rides"
|
|
|
|
urlpatterns = [
|
|
# Global list views
|
|
path("", views.RideListView.as_view(), name="global_ride_list"),
|
|
# Global category views
|
|
path(
|
|
"roller_coasters/",
|
|
views.SingleCategoryListView.as_view(),
|
|
{"category": "RC"},
|
|
name="global_roller_coasters",
|
|
),
|
|
path(
|
|
"dark_rides/",
|
|
views.SingleCategoryListView.as_view(),
|
|
{"category": "DR"},
|
|
name="global_dark_rides",
|
|
),
|
|
path(
|
|
"flat_rides/",
|
|
views.SingleCategoryListView.as_view(),
|
|
{"category": "FR"},
|
|
name="global_flat_rides",
|
|
),
|
|
path(
|
|
"water_rides/",
|
|
views.SingleCategoryListView.as_view(),
|
|
{"category": "WR"},
|
|
name="global_water_rides",
|
|
),
|
|
path(
|
|
"transports/",
|
|
views.SingleCategoryListView.as_view(),
|
|
{"category": "TR"},
|
|
name="global_transports",
|
|
),
|
|
path(
|
|
"others/",
|
|
views.SingleCategoryListView.as_view(),
|
|
{"category": "OT"},
|
|
name="global_others",
|
|
),
|
|
# Search endpoints (must come before slug patterns)
|
|
path("search/models/", views.search_ride_models, name="search_ride_models"),
|
|
path("search/companies/", views.search_companies, name="search_companies"),
|
|
# HTMX endpoints (must come before slug patterns)
|
|
path("coaster-fields/", views.show_coaster_fields, name="coaster_fields"),
|
|
path(
|
|
"search-suggestions/",
|
|
views.get_search_suggestions,
|
|
name="search_suggestions",
|
|
),
|
|
# Ranking endpoints
|
|
path("rankings/", views.RideRankingsView.as_view(), name="rankings"),
|
|
path(
|
|
"rankings/<slug:ride_slug>/",
|
|
views.RideRankingDetailView.as_view(),
|
|
name="ranking_detail",
|
|
),
|
|
path(
|
|
"rankings/<slug:ride_slug>/history-chart/",
|
|
views.ranking_history_chart,
|
|
name="ranking_history_chart",
|
|
),
|
|
path(
|
|
"rankings/<slug:ride_slug>/comparisons/",
|
|
views.ranking_comparisons,
|
|
name="ranking_comparisons",
|
|
),
|
|
# API endpoints for Vue.js frontend
|
|
path("api/", include("apps.rides.api_urls", namespace="rides_api")),
|
|
# Park-specific URLs
|
|
path("create/", views.RideCreateView.as_view(), name="ride_create"),
|
|
path("<slug:ride_slug>/", views.RideDetailView.as_view(), name="ride_detail"),
|
|
path(
|
|
"<slug:ride_slug>/update/",
|
|
views.RideUpdateView.as_view(),
|
|
name="ride_update",
|
|
),
|
|
]
|