Sith/sith/urls.py

92 lines
3.3 KiB
Python
Raw Normal View History

#
# Copyright 2023 © AE UTBM
# ae@utbm.fr / ae.info@utbm.fr
#
# This file is part of the website of the UTBM Student Association (AE UTBM),
# https://ae.utbm.fr.
#
# You can find the source code of the website at https://github.com/ae-utbm/sith
#
# LICENSED UNDER THE GNU GENERAL PUBLIC LICENSE VERSION 3 (GPLv3)
2024-09-23 08:25:27 +00:00
# SEE : https://raw.githubusercontent.com/ae-utbm/sith/master/LICENSE
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
2016-01-28 15:53:37 +00:00
from django.conf import settings
from django.conf.urls.static import static
2024-06-24 11:07:36 +00:00
from django.contrib import admin
2024-10-15 12:09:51 +00:00
from django.http import Http404
2024-06-24 11:07:36 +00:00
from django.urls import include, path
from django.views.i18n import JavaScriptCatalog
2024-07-18 18:23:30 +00:00
from ninja_extra import NinjaExtraAPI
2018-10-04 19:29:19 +00:00
js_info_dict = {"packages": ("sith",)}
2016-09-08 01:29:49 +00:00
handler403 = "core.views.forbidden"
handler404 = "core.views.not_found"
handler500 = "core.views.internal_servor_error"
2024-07-18 18:23:30 +00:00
api = NinjaExtraAPI(version="0.2.0", urls_namespace="api")
api.auto_discover_controllers()
2015-11-18 08:44:06 +00:00
urlpatterns = [
path("", include(("core.urls", "core"), namespace="core")),
2024-07-18 18:23:30 +00:00
path("api/", api.urls),
path("rootplace/", include(("rootplace.urls", "rootplace"), namespace="rootplace")),
path(
"subscription/",
include(("subscription.urls", "subscription"), namespace="subscription"),
2018-10-04 19:29:19 +00:00
),
path("com/", include(("com.urls", "com"), namespace="com")),
path("club/", include(("club.urls", "club"), namespace="club")),
path("counter/", include(("counter.urls", "counter"), namespace="counter")),
path(
"accounting/",
include(("accounting.urls", "accounting"), namespace="accounting"),
2018-10-04 19:29:19 +00:00
),
path("eboutic/", include(("eboutic.urls", "eboutic"), namespace="eboutic")),
path(
"launderette/",
include(("launderette.urls", "launderette"), namespace="launderette"),
2018-10-04 19:29:19 +00:00
),
path("sas/", include(("sas.urls", "sas"), namespace="sas")),
path("election/", include(("election.urls", "election"), namespace="election")),
path("forum/", include(("forum.urls", "forum"), namespace="forum")),
path("galaxy/", include(("galaxy.urls", "galaxy"), namespace="galaxy")),
path("trombi/", include(("trombi.urls", "trombi"), namespace="trombi")),
path("matmatronch/", include(("matmat.urls", "matmat"), namespace="matmat")),
path("pedagogy/", include(("pedagogy.urls", "pedagogy"), namespace="pedagogy")),
path("admin/", admin.site.urls),
path("i18n/", include("django.conf.urls.i18n")),
path("jsi18n/", JavaScriptCatalog.as_view(), name="javascript-catalog"),
path("captcha/", include("captcha.urls")),
2016-09-14 11:46:17 +00:00
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
2017-02-24 00:52:22 +00:00
import debug_toolbar
2018-10-04 19:29:19 +00:00
urlpatterns += [path("__debug__/", include(debug_toolbar.urls))]
2022-08-27 17:48:23 +00:00
2024-10-15 12:09:51 +00:00
def sentry_debug(request):
2022-08-27 19:22:31 +00:00
"""Sentry debug endpoint
2022-08-27 19:22:31 +00:00
This function always crash and allows us to test
2024-10-15 12:09:51 +00:00
the sentry configuration and the modal popup
2022-08-27 19:22:31 +00:00
displayed to users on production
2022-08-27 19:22:31 +00:00
The error will be displayed on Sentry
inside the "development" environment
2022-08-27 19:22:31 +00:00
NOTE : you need to specify the SENTRY_DSN setting in settings_custom.py
"""
2024-10-15 12:09:51 +00:00
if settings.SENTRY_ENV != "development" or not settings.SENTRY_DSN:
raise Http404
_division_by_zero = 1 / 0
2022-08-27 19:22:31 +00:00
2024-10-15 12:09:51 +00:00
urlpatterns += [path("sentry-debug/", sentry_debug, name="sentry-debug")]