team-3/src/c3nav/urls.py
2024-12-02 21:10:35 +01:00

62 lines
1.9 KiB
Python

from contextlib import suppress
from channels.routing import URLRouter
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
urlpatterns = []
websocket_urlpatterns = []
if settings.SERVE_ANYTHING:
import c3nav.control.urls
import c3nav.editor.urls
import c3nav.mapdata.urls
import c3nav.site.urls
urlpatterns += [
path('editor/', include(c3nav.editor.urls)),
path('map/', include(c3nav.mapdata.urls)),
path('admin/', admin.site.urls),
path('control/', include(c3nav.control.urls)),
]
if settings.SERVE_API:
import c3nav.api.urls
urlpatterns += [
path('api/', include(c3nav.api.urls)),
]
if settings.ENABLE_MESH:
import c3nav.mesh.urls
urlpatterns += [
path('mesh/', include(c3nav.mesh.urls)),
]
urlpatterns += [
path('locales/', include('django.conf.urls.i18n')),
path('', include(c3nav.site.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.ENABLE_MESH:
websocket_urlpatterns += [
path('mesh/', URLRouter(c3nav.mesh.urls.websocket_urlpatterns)),
]
if settings.DEBUG:
with suppress(ImportError):
import debug_toolbar
urlpatterns.insert(0, path('__debug__/', include(debug_toolbar.urls)))
if settings.METRICS:
with suppress(ImportError):
import django_prometheus # noqa
from c3nav.mapdata.views import prometheus_exporter
urlpatterns += [
path('prometheus/metrics', prometheus_exporter, name='prometheus-exporter'),
]
if settings.SSO_ENABLED:
urlpatterns += [
path('sso/', include('social_django.urls', namespace='social'))
]