from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static from django.views.static import serve from accounts import views as accounts_views from django.views.generic import TemplateView from .views import HomeView, SearchView from . import views import os urlpatterns = [ path("admin/", admin.site.urls), # Main app URLs path("", HomeView.as_view(), name="home"), # Parks URLs path("parks/", include("parks.urls", namespace="parks")), # Rides URLs path("rides/", include("rides.urls", namespace="rides")), # Other URLs path("reviews/", include("reviews.urls")), path("companies/", include("companies.urls")), path("designers/", include("designers.urls", namespace="designers")), path("photos/", include("media.urls", namespace="photos")), # Add photos URLs path("search/", SearchView.as_view(), name="search"), path( "terms/", TemplateView.as_view(template_name="pages/terms.html"), name="terms" ), path( "privacy/", TemplateView.as_view(template_name="pages/privacy.html"), name="privacy", ), # Custom authentication URLs first (to override allauth defaults) path("accounts/", include("accounts.urls")), # Default allauth URLs (for social auth and other features) path("accounts/", include("allauth.urls")), path( "accounts/email-required/", accounts_views.email_required, name="email_required" ), # User profile URLs path( "user//", accounts_views.ProfileView.as_view(), name="user_profile", ), path( "profile//", accounts_views.ProfileView.as_view(), name="profile" ), path("settings/", accounts_views.SettingsView.as_view(), name="settings"), # Redirect /user/ to the user's profile if logged in path("user/", accounts_views.user_redirect_view, name="user_redirect"), # Moderation URLs - placed after other URLs but before static/media serving path("moderation/", include("moderation.urls", namespace="moderation")), # Version Control System URLs path("vcs/", include("history_tracking.urls", namespace="history")), path( "env-settings/", views***REMOVED***ironment_and_settings_view, name="environment_and_settings", ), ] # Serve static files in development if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # Serve test coverage reports in development coverage_dir = os.path.join(settings.BASE_DIR, 'tests', 'coverage_html') if os.path.exists(coverage_dir): urlpatterns += [ path('coverage/', serve, { 'document_root': coverage_dir, 'path': 'index.html' }), path('coverage/', serve, { 'document_root': coverage_dir, }), ] handler404 = "thrillwiki.views.handler404" handler500 = "thrillwiki.views.handler500"