Add a new notifications app (models, serializers, views, admin, tasks, consumers, routing, urls, tests) with Notification.notify for in-app websocket pushes and optional email delivery. Centralize email sending in notifications.tasks.send_email_with_context and re-export it from account.tasks for compatibility. Update account and commerce and advertisement tasks to use Notification.notify/_notify_order and the new email helper; adjust order/notification tasks to consolidate logic. Wire notifications into ASGI routing, settings and URL conf. Misc: handle OSError when importing weasyprint, add tmp/ to .gitignore, add local .claude PowerShell checks, add social.blog skeleton, and remove legacy ews-component test files.
62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
"""
|
|
URL configuration for vontor_cz project.
|
|
|
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
|
https://docs.djangoproject.com/en/5.2/topics/http/urls/
|
|
Examples:
|
|
Function views
|
|
1. Add an import: from my_app import views
|
|
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
|
Class-based views
|
|
1. Add an import: from other_app.views import Home
|
|
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
|
Including another URLconf
|
|
1. Import the include() function: from django.urls import include, path
|
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
|
"""
|
|
from django.contrib import admin
|
|
from django.urls import path, include
|
|
from django.conf.urls.static import static
|
|
from django.conf import settings
|
|
|
|
from django.conf import settings
|
|
from .views import choices
|
|
|
|
from drf_spectacular.views import (
|
|
SpectacularAPIView,
|
|
SpectacularSwaggerView,
|
|
SpectacularRedocView,
|
|
)
|
|
|
|
urlpatterns = [
|
|
#rest framework, map of api
|
|
path("api/schema/", SpectacularAPIView.as_view(), name="schema"),
|
|
path("swagger/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui"),
|
|
path("redoc/", SpectacularRedocView.as_view(url_name="schema"), name="redoc"),
|
|
path('silk/', include('silk.urls', namespace='silk')),
|
|
|
|
|
|
path('admin/', admin.site.urls),
|
|
path("api/choices/", choices, name="choices"),
|
|
path('api/account/', include('account.urls')),
|
|
path('api/commerce/', include('commerce.urls')),
|
|
path('api/configuration/', include('configuration.urls')),
|
|
path('api/advertisement/', include('advertisement.urls')),
|
|
|
|
path('api/notifications/', include('notifications.urls')),
|
|
path('api/social/hubs/', include('social.hubs.urls')),
|
|
path('api/social/posts/', include('social.posts.urls')),
|
|
path('api/social/', include('social.chat.urls')),
|
|
|
|
path('api/stripe/', include('thirdparty.stripe.urls')),
|
|
path('api/trading212/', include('thirdparty.trading212.urls')),
|
|
path('api/downloader/', include('thirdparty.downloader.urls')),
|
|
path("api/payments/gopay/", include("thirdparty.gopay.urls", namespace="gopay")),
|
|
path('api/zasilkovna/', include('thirdparty.zasilkovna.urls')),
|
|
path('api/deutschepost/', include('thirdparty.deutschepost.urls')),
|
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
|
|
|
if settings.DEBUG:
|
|
urlpatterns += [path('silk/', include('silk.urls', namespace='silk'))]
|
|
|