mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 13:11:08 -05:00
- Created ParkPhoto and ParkPhotoEvent models in the parks app, including fields for image, caption, alt text, and relationships to the Park model. - Implemented triggers for insert and update operations on ParkPhoto to log changes in ParkPhotoEvent. - Created RidePhoto and RidePhotoEvent models in the rides app, with similar structure and functionality as ParkPhoto. - Added fields for photo type in RidePhoto and implemented corresponding triggers for logging changes. - Established necessary indexes and unique constraints for both models to ensure data integrity and optimize queries.
84 lines
2.5 KiB
Python
84 lines
2.5 KiB
Python
from django.urls import path
|
|
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 moved to centralized backend/api/v1/rides/ structure
|
|
# Frontend requests to /api/ are proxied to /api/v1/ by Vite
|
|
# 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",
|
|
),
|
|
]
|