diff --git a/combo/apps/assets/urls.py b/combo/apps/assets/urls.py
index cd315dde..62c851c5 100644
--- a/combo/apps/assets/urls.py
+++ b/combo/apps/assets/urls.py
@@ -14,27 +14,27 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from combo.urls_utils import decorated_includes, staff_required
from . import api_views, views
assets_manager_urls = [
- url(r'^$', views.assets, name='combo-manager-assets'),
- url(r'^slots/(?P[\w_-]+)/$', views.slot_assets, name='combo-manager-slot-assets'),
- url(r'^delete$', views.asset_delete, name='combo-manager-asset-delete'),
- url(r'^overwrite/$', views.asset_overwrite, name='combo-manager-asset-overwrite'),
- url(r'^upload/$', views.asset_upload, name='combo-manager-asset-upload'),
- url(r'^upload/(?P[\w_:-]+)/$', views.slot_asset_upload, name='combo-manager-slot-asset-upload'),
- url(r'^delete/(?P[\w_:-]+)/$', views.slot_asset_delete, name='combo-manager-slot-asset-delete'),
- url(r'^export/$', views.assets_export, name='combo-manager-assets-export'),
- url(r'^import/$', views.assets_import, name='combo-manager-assets-import'),
+ re_path(r'^$', views.assets, name='combo-manager-assets'),
+ re_path(r'^slots/(?P[\w_-]+)/$', views.slot_assets, name='combo-manager-slot-assets'),
+ re_path(r'^delete$', views.asset_delete, name='combo-manager-asset-delete'),
+ re_path(r'^overwrite/$', views.asset_overwrite, name='combo-manager-asset-overwrite'),
+ re_path(r'^upload/$', views.asset_upload, name='combo-manager-asset-upload'),
+ re_path(r'^upload/(?P[\w_:-]+)/$', views.slot_asset_upload, name='combo-manager-slot-asset-upload'),
+ re_path(r'^delete/(?P[\w_:-]+)/$', views.slot_asset_delete, name='combo-manager-slot-asset-delete'),
+ re_path(r'^export/$', views.assets_export, name='combo-manager-assets-export'),
+ re_path(r'^import/$', views.assets_import, name='combo-manager-assets-import'),
]
urlpatterns = [
- url(r'^assets/(?P[\w_:-]+)$', views.serve_asset),
- url(r'^manage/assets/', decorated_includes(staff_required, include(assets_manager_urls))),
- url(r'^api/assets/set/(?P[\w_:-]+)/$', api_views.view_set, name='api-assets-set'),
- url(r'^ajax/assets-export-size/$', views.assets_export_size, name='combo-manager-assets-export-size'),
+ re_path(r'^assets/(?P[\w_:-]+)$', views.serve_asset),
+ re_path(r'^manage/assets/', decorated_includes(staff_required, include(assets_manager_urls))),
+ re_path(r'^api/assets/set/(?P[\w_:-]+)/$', api_views.view_set, name='api-assets-set'),
+ re_path(r'^ajax/assets-export-size/$', views.assets_export_size, name='combo-manager-assets-export-size'),
]
diff --git a/combo/apps/calendar/urls.py b/combo/apps/calendar/urls.py
index 68146d4f..c65bef76 100644
--- a/combo/apps/calendar/urls.py
+++ b/combo/apps/calendar/urls.py
@@ -14,13 +14,13 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from .views import BookingView, CalendarContentAjaxView
urlpatterns = [
- url(r'^calendar/book/(?P[\w,-]+)/$', BookingView.as_view(), name='calendar-booking'),
- url(
+ re_path(r'^calendar/book/(?P[\w,-]+)/$', BookingView.as_view(), name='calendar-booking'),
+ re_path(
r'^ajax/calendar/content/(?P\w+)/$',
CalendarContentAjaxView.as_view(),
name='ajax-calendar-content',
diff --git a/combo/apps/dashboard/urls.py b/combo/apps/dashboard/urls.py
index 17e742c3..a8224c80 100644
--- a/combo/apps/dashboard/urls.py
+++ b/combo/apps/dashboard/urls.py
@@ -14,32 +14,32 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from . import views
urlpatterns = [
- url(
+ re_path(
r'^api/dashboard/add/(?P[\w_-]+)/$',
views.dashboard_add_tile,
name='combo-dashboard-add-tile',
),
- url(
+ re_path(
r'^api/dashboard/remove/(?P[\w_-]+)/$',
views.dashboard_remove_tile,
name='combo-dashboard-remove-tile',
),
- url(
+ re_path(
r'^api/dashboard/auto-tile/(?P[\w_-]+)/$',
views.dashboard_auto_tile,
name='combo-dashboard-auto-tile',
),
- url(
+ re_path(
r'^api/dashboard/reorder/(?P[\w]+)/$',
views.dashboard_reorder_tiles,
name='combo-dashboard-reorder-tiles',
),
- url(
+ re_path(
r'^api/dashboard/tile-stats/$',
views.dashboard_tile_stats,
name='combo-dashboard-tile-stats',
diff --git a/combo/apps/dataviz/urls.py b/combo/apps/dataviz/urls.py
index ede80280..4bb1543d 100644
--- a/combo/apps/dataviz/urls.py
+++ b/combo/apps/dataviz/urls.py
@@ -14,11 +14,11 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from .views import ajax_gauge_count, dataviz_graph
urlpatterns = [
- url(r'^ajax/gauge-count/(?P[\w_-]+)/$', ajax_gauge_count, name='combo-ajax-gauge-count'),
- url(r'^api/dataviz/graph/(?P[\w_-]+)/$', dataviz_graph, name='combo-dataviz-graph'),
+ re_path(r'^ajax/gauge-count/(?P[\w_-]+)/$', ajax_gauge_count, name='combo-ajax-gauge-count'),
+ re_path(r'^api/dataviz/graph/(?P[\w_-]+)/$', dataviz_graph, name='combo-dataviz-graph'),
]
diff --git a/combo/apps/gallery/urls.py b/combo/apps/gallery/urls.py
index 5b84d665..56638cf9 100644
--- a/combo/apps/gallery/urls.py
+++ b/combo/apps/gallery/urls.py
@@ -14,19 +14,19 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from . import views
gallery_manager_urls = [
- url(r'^gallery/(?P\w+)/images/add/$', views.image_add, name='combo-gallery-image-add'),
- url(r'^gallery/(?P\w+)/order$', views.image_order, name='combo-gallery-image-order'),
- url(
+ re_path(r'^gallery/(?P\w+)/images/add/$', views.image_add, name='combo-gallery-image-add'),
+ re_path(r'^gallery/(?P\w+)/order$', views.image_order, name='combo-gallery-image-order'),
+ re_path(
r'^gallery/(?P\w+)/images/(?P\w+)/edit$',
views.image_edit,
name='combo-gallery-image-edit',
),
- url(
+ re_path(
r'^gallery/(?P\w+)/images/(?P\w+)/delete$',
views.image_delete,
name='combo-gallery-image-delete',
diff --git a/combo/apps/lingo/urls.py b/combo/apps/lingo/urls.py
index 2ba92490..ed61c868 100644
--- a/combo/apps/lingo/urls.py
+++ b/combo/apps/lingo/urls.py
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from combo.urls_utils import decorated_includes, staff_required
@@ -51,30 +51,30 @@ from .views import (
)
lingo_manager_urls = [
- url('^$', TransactionListView.as_view(), name='lingo-manager-homepage'),
- url('^payments/error/$', BasketItemErrorListView.as_view(), name='lingo-manager-payment-error-list'),
- url(
+ re_path('^$', TransactionListView.as_view(), name='lingo-manager-homepage'),
+ re_path('^payments/error/$', BasketItemErrorListView.as_view(), name='lingo-manager-payment-error-list'),
+ re_path(
r'^item/(?P\d+)/mark-as-notified/$',
BasketItemMarkAsNotifiedView.as_view(),
name='lingo-manager-basket-item-mark-as-notified',
),
- url(
+ re_path(
'^transactions/download-csv/$', download_transactions_csv, name='lingo-manager-transactions-download'
),
- url('^regies/$', RegieListView.as_view(), name='lingo-manager-regie-list'),
- url('^regies/add/$', RegieCreateView.as_view(), name='lingo-manager-regie-add'),
- url(r'^regies/(?P\w+)/edit$', RegieUpdateView.as_view(), name='lingo-manager-regie-edit'),
- url(r'^regies/(?P\w+)/delete$', RegieDeleteView.as_view(), name='lingo-manager-regie-delete'),
- url('^paymentbackends/$', PaymentBackendListView.as_view(), name='lingo-manager-paymentbackend-list'),
- url(
+ re_path('^regies/$', RegieListView.as_view(), name='lingo-manager-regie-list'),
+ re_path('^regies/add/$', RegieCreateView.as_view(), name='lingo-manager-regie-add'),
+ re_path(r'^regies/(?P\w+)/edit$', RegieUpdateView.as_view(), name='lingo-manager-regie-edit'),
+ re_path(r'^regies/(?P\w+)/delete$', RegieDeleteView.as_view(), name='lingo-manager-regie-delete'),
+ re_path('^paymentbackends/$', PaymentBackendListView.as_view(), name='lingo-manager-paymentbackend-list'),
+ re_path(
'^paymentbackends/add/$', PaymentBackendCreateView.as_view(), name='lingo-manager-paymentbackend-add'
),
- url(
+ re_path(
r'^paymentbackends/(?P\w+)/edit$',
PaymentBackendUpdateView.as_view(),
name='lingo-manager-paymentbackend-edit',
),
- url(
+ re_path(
r'^paymentbackends/(?P\w+)/delete$',
PaymentBackendDeleteView.as_view(),
name='lingo-manager-paymentbackend-delete',
@@ -82,46 +82,52 @@ lingo_manager_urls = [
]
urlpatterns = [
- url('^api/lingo/regies$', RegiesApiView.as_view(), name='api-regies'),
- url('^api/lingo/add-basket-item$', AddBasketItemApiView.as_view(), name='api-add-basket-item'),
- url('^api/lingo/remove-basket-item$', RemoveBasketItemApiView.as_view(), name='api-remove-basket-item'),
- url(
+ re_path('^api/lingo/regies$', RegiesApiView.as_view(), name='api-regies'),
+ re_path('^api/lingo/add-basket-item$', AddBasketItemApiView.as_view(), name='api-add-basket-item'),
+ re_path(
+ '^api/lingo/remove-basket-item$', RemoveBasketItemApiView.as_view(), name='api-remove-basket-item'
+ ),
+ re_path(
'^api/lingo/validate-transaction$',
ValidateTransactionApiView.as_view(),
name='api-validate-transaction',
),
- url('^api/lingo/cancel-transaction$', CancelTransactionApiView.as_view(), name='api-cancel-transaction'),
- url(
+ re_path(
+ '^api/lingo/cancel-transaction$', CancelTransactionApiView.as_view(), name='api-cancel-transaction'
+ ),
+ re_path(
'^api/lingo/transaction-status/(?P.+)/$',
TransactionStatusApiView.as_view(),
name='api-transaction-status',
),
- url(r'^lingo/pay$', PayView.as_view(), name='lingo-pay'),
- url(r'^lingo/cancel/(?P\w+)/$', CancelItemView.as_view(), name='lingo-cancel-item'),
- url(r'^lingo/callback/(?P\w+)/$', CallbackView.as_view(), name='lingo-callback'),
- url(
+ re_path(r'^lingo/pay$', PayView.as_view(), name='lingo-pay'),
+ re_path(r'^lingo/cancel/(?P\w+)/$', CancelItemView.as_view(), name='lingo-cancel-item'),
+ re_path(r'^lingo/callback/(?P\w+)/$', CallbackView.as_view(), name='lingo-callback'),
+ re_path(
r'^lingo/callback-payment-backend/(?P[A-Za-z0-9_-]+)/$',
CallbackView.as_view(),
name='lingo-callback-payment-backend',
),
- url(r'^lingo/return/(?P\w+)/$', ReturnView.as_view(), name='lingo-return'),
- url(
+ re_path(r'^lingo/return/(?P\w+)/$', ReturnView.as_view(), name='lingo-return'),
+ re_path(
r'^lingo/return-payment-backend/(?P\w+)/(?P.+)/$',
ReturnView.as_view(),
name='lingo-return-payment-backend',
),
- url(r'^manage/lingo/', decorated_includes(staff_required, include(lingo_manager_urls))),
- url(
+ re_path(r'^manage/lingo/', decorated_includes(staff_required, include(lingo_manager_urls))),
+ re_path(
r'^lingo/item/(?P[\w,-]+)/(?P[\w,-]+)/pdf$',
ItemDownloadView.as_view(),
name='download-item-pdf',
),
- url(
+ re_path(
r'^lingo/item/(?P[\w,-]+)/(?P[\w,-]+)/$',
ItemView.as_view(),
name='view-item',
),
- url(r'^lingo/item/(?P.+)/pay$', BasketItemPayView.as_view(), name='basket-item-pay-view'),
- url(r'^lingo/payment-status$', PaymentStatusView.as_view(), name='payment-status'),
- url(r'^lingo/self-invoice/(?P\w+)/$', SelfInvoiceView.as_view(), name='lingo-self-invoice'),
+ re_path(
+ r'^lingo/item/(?P.+)/pay$', BasketItemPayView.as_view(), name='basket-item-pay-view'
+ ),
+ re_path(r'^lingo/payment-status$', PaymentStatusView.as_view(), name='payment-status'),
+ re_path(r'^lingo/self-invoice/(?P\w+)/$', SelfInvoiceView.as_view(), name='lingo-self-invoice'),
]
diff --git a/combo/apps/maps/urls.py b/combo/apps/maps/urls.py
index a32b9487..c35f2f16 100644
--- a/combo/apps/maps/urls.py
+++ b/combo/apps/maps/urls.py
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from combo.urls_utils import decorated_includes, staff_required
@@ -22,38 +22,38 @@ from . import manager_views
from .views import GeojsonView
maps_manager_urls = [
- url('^$', manager_views.ManagerHomeView.as_view(), name='maps-manager-homepage'),
- url(
+ re_path('^$', manager_views.ManagerHomeView.as_view(), name='maps-manager-homepage'),
+ re_path(
'^layers/add/(?Pgeojson|tiles)/$',
manager_views.LayerAddView.as_view(),
name='maps-manager-layer-add',
),
- url(
+ re_path(
r'^layers/(?P[\w-]+)/edit/$',
manager_views.LayerEditView.as_view(),
name='maps-manager-layer-edit',
),
- url(
+ re_path(
r'^layers/(?P[\w-]+)/edit/request-parameters/$',
manager_views.LayerEditRequestParametersView.as_view(),
name='maps-manager-layer-edit-request-parameters',
),
- url(
+ re_path(
r'^layers/(?P[\w-]+)/delete/$',
manager_views.LayerDeleteView.as_view(),
name='maps-manager-layer-delete',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/add-layer/(?Pgeojson|tiles)/$',
manager_views.map_cell_add_layer,
name='maps-manager-cell-add-layer',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/layer/(?P\d+)/edit/$',
manager_views.map_cell_edit_layer,
name='maps-manager-cell-edit-layer',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/layer/(?P\d+)/delete/$',
manager_views.map_cell_delete_layer,
name='maps-manager-cell-delete-layer',
@@ -61,8 +61,8 @@ maps_manager_urls = [
]
urlpatterns = [
- url(r'^manage/maps/', decorated_includes(staff_required, include(maps_manager_urls))),
- url(
+ re_path(r'^manage/maps/', decorated_includes(staff_required, include(maps_manager_urls))),
+ re_path(
r'^ajax/mapcell/geojson/(?P\d+)/(?P[\w-]+)/$',
GeojsonView.as_view(),
name='mapcell-geojson',
diff --git a/combo/apps/notifications/urls.py b/combo/apps/notifications/urls.py
index cf098835..853c5311 100644
--- a/combo/apps/notifications/urls.py
+++ b/combo/apps/notifications/urls.py
@@ -14,13 +14,15 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from .api_views import ack, add, count, forget
urlpatterns = [
- url('^api/notification/add/$', add, name='api-notification-add'),
- url(r'^api/notification/ack/(?P[\w:_-]+)/$', ack, name='api-notification-ack'),
- url(r'^api/notification/forget/(?P[\w:_-]+)/$', forget, name='api-notification-forget'),
- url('^api/notification/count/$', count, name='api-notification-count'),
+ re_path('^api/notification/add/$', add, name='api-notification-add'),
+ re_path(r'^api/notification/ack/(?P[\w:_-]+)/$', ack, name='api-notification-ack'),
+ re_path(
+ r'^api/notification/forget/(?P[\w:_-]+)/$', forget, name='api-notification-forget'
+ ),
+ re_path('^api/notification/count/$', count, name='api-notification-count'),
]
diff --git a/combo/apps/publik/urls.py b/combo/apps/publik/urls.py
index 7c7cc6a4..5cf3a6d7 100644
--- a/combo/apps/publik/urls.py
+++ b/combo/apps/publik/urls.py
@@ -14,8 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from .views import services_js
-urlpatterns = [url(r'^__services.js$', services_js)]
+urlpatterns = [re_path(r'^__services.js$', services_js)]
diff --git a/combo/apps/pwa/urls.py b/combo/apps/pwa/urls.py
index d369786f..bc44d475 100644
--- a/combo/apps/pwa/urls.py
+++ b/combo/apps/pwa/urls.py
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from combo.urls_utils import decorated_includes, staff_required
@@ -34,26 +34,26 @@ from .views import (
)
pwa_manager_urls = [
- url('^$', ManagerHomeView.as_view(), name='pwa-manager-homepage'),
- url('^navigation/add/$', ManagerAddNavigationEntry.as_view(), name='pwa-manager-navigation-add'),
- url(
+ re_path('^$', ManagerHomeView.as_view(), name='pwa-manager-homepage'),
+ re_path('^navigation/add/$', ManagerAddNavigationEntry.as_view(), name='pwa-manager-navigation-add'),
+ re_path(
r'^navigation/edit/(?P\w+)/$',
ManagerEditNavigationEntry.as_view(),
name='pwa-manager-navigation-edit',
),
- url(
+ re_path(
r'^navigation/delete/(?P\w+)/$',
ManagerDeleteNavigationEntry.as_view(),
name='pwa-manager-navigation-delete',
),
- url('^navigation/order/$', manager_navigation_order, name='pwa-manager-navigation-order'),
+ re_path('^navigation/order/$', manager_navigation_order, name='pwa-manager-navigation-order'),
]
urlpatterns = [
- url('^manifest.json$', manifest_json),
- url('^service-worker.js$', service_worker_js),
- url('^service-worker-registration.js$', service_worker_registration_js),
- url('^api/pwa/push/subscribe$', subscribe_push, name='pwa-subscribe-push'),
- url('^__pwa__/offline/$', offline_page),
- url(r'^manage/pwa/', decorated_includes(staff_required, include(pwa_manager_urls))),
+ re_path('^manifest.json$', manifest_json),
+ re_path('^service-worker.js$', service_worker_js),
+ re_path('^service-worker-registration.js$', service_worker_registration_js),
+ re_path('^api/pwa/push/subscribe$', subscribe_push, name='pwa-subscribe-push'),
+ re_path('^__pwa__/offline/$', offline_page),
+ re_path(r'^manage/pwa/', decorated_includes(staff_required, include(pwa_manager_urls))),
]
diff --git a/combo/apps/search/urls.py b/combo/apps/search/urls.py
index 0a8c6cb8..c3befe1a 100644
--- a/combo/apps/search/urls.py
+++ b/combo/apps/search/urls.py
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from combo.urls_utils import decorated_includes, manager_required
@@ -22,22 +22,22 @@ from . import manager_views
from .models import SearchCell
search_manager_urls = [
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_]+-\d+)/engine/(?P[\w_:-]+)/add/$',
manager_views.page_search_cell_add_engine,
name='combo-manager-page-search-cell-add-engine',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_]+-\d+)/engine/(?P[\w_:-]+)/edit/$',
manager_views.page_search_cell_update_engine,
name='combo-manager-page-search-cell-update-engine',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_]+-\d+)/engine/(?P[\w_:-]+)/delete/$',
manager_views.page_search_cell_delete_engine,
name='combo-manager-page-search-cell-delete-engine',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_]+-\d+)/engine/order$',
manager_views.search_engines_order,
name='combo-manager-search-engines-order',
@@ -45,8 +45,8 @@ search_manager_urls = [
]
urlpatterns = [
- url(r'^manage/search/', decorated_includes(manager_required, include(search_manager_urls))),
- url(
+ re_path(r'^manage/search/', decorated_includes(manager_required, include(search_manager_urls))),
+ re_path(
r'^ajax/search/(?P\w+)/(?P[\w_:-]+)/$',
SearchCell.ajax_results_view,
name='combo-search-ajax-results',
diff --git a/combo/apps/wcs/urls.py b/combo/apps/wcs/urls.py
index 217a8ea9..32c6759f 100644
--- a/combo/apps/wcs/urls.py
+++ b/combo/apps/wcs/urls.py
@@ -14,14 +14,14 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from .views import TrackingCodeView, redirect_crypto_url, tracking_code_search
urlpatterns = [
- url(r'^tracking-code/$', TrackingCodeView.as_view(), name='wcs-tracking-code'),
- url(r'^api/search/tracking-code/$', tracking_code_search, name='wcs-tracking-code-search'),
- url(
+ re_path(r'^tracking-code/$', TrackingCodeView.as_view(), name='wcs-tracking-code'),
+ re_path(r'^api/search/tracking-code/$', tracking_code_search, name='wcs-tracking-code-search'),
+ re_path(
r'^api/wcs/file/(?P\w+)/(?P[\w,-]+)/$',
redirect_crypto_url,
name='wcs-redirect-crypto-url',
diff --git a/combo/manager/urls.py b/combo/manager/urls.py
index 3178a8f6..e250cac8 100644
--- a/combo/manager/urls.py
+++ b/combo/manager/urls.py
@@ -15,7 +15,7 @@
# along with this program. If not, see .
import ckeditor.views as ckeditor_views
-from django.conf.urls import url
+from django.conf.urls import re_path
from django.views.decorators.cache import never_cache
from combo.apps.assets import views as assets_views
@@ -25,141 +25,141 @@ from .. import plugins
from . import views
urlpatterns = [
- url(r'^$', views.homepage, name='combo-manager-homepage'),
- url(r'^menu.json$', views.menu_json),
- url(r'^site-export$', pages_admin_required(views.site_export), name='combo-manager-site-export'),
- url(r'^site-import$', pages_admin_required(views.site_import), name='combo-manager-site-import'),
- url(r'^site-settings$', views.site_settings, name='combo-manager-site-settings'),
- url(
+ re_path(r'^$', views.homepage, name='combo-manager-homepage'),
+ re_path(r'^menu.json$', views.menu_json),
+ re_path(r'^site-export$', pages_admin_required(views.site_export), name='combo-manager-site-export'),
+ re_path(r'^site-import$', pages_admin_required(views.site_import), name='combo-manager-site-import'),
+ re_path(r'^site-settings$', views.site_settings, name='combo-manager-site-settings'),
+ re_path(
r'^cells/invalid-report/$',
pages_admin_required(views.invalid_cell_report),
name='combo-manager-invalid-cell-report',
),
- url(r'^pages/add/$', views.page_add, name='combo-manager-page-add'),
- url(r'^pages/(?P\d+)/$', views.page_view, name='combo-manager-page-view'),
- url(
+ re_path(r'^pages/add/$', views.page_add, name='combo-manager-page-add'),
+ re_path(r'^pages/(?P\d+)/$', views.page_view, name='combo-manager-page-view'),
+ re_path(
r'^pages/(?P\d+)/template$', views.page_select_template, name='combo-manager-page-select-template'
),
- url(r'^pages/(?P\d+)/visibility$', views.page_visibility, name='combo-manager-page-visibility'),
- url(
+ re_path(r'^pages/(?P\d+)/visibility$', views.page_visibility, name='combo-manager-page-visibility'),
+ re_path(
r'^pages/(?P\d+)/redirection$',
views.page_edit_redirection,
name='combo-manager-page-edit-redirection',
),
- url(
+ re_path(
r'^pages/(?P\d+)/include-in-navigation$',
views.page_edit_include_in_navigation,
name='combo-manager-page-edit-include-in-navigation',
),
- url(r'^pages/(?P\d+)/slug$', views.page_edit_slug, name='combo-manager-page-edit-slug'),
- url(r'^pages/(?P\d+)/title$', views.page_edit_title, name='combo-manager-page-edit-title'),
- url(
+ re_path(r'^pages/(?P\d+)/slug$', views.page_edit_slug, name='combo-manager-page-edit-slug'),
+ re_path(r'^pages/(?P\d+)/title$', views.page_edit_title, name='combo-manager-page-edit-title'),
+ re_path(
r'^pages/(?P\d+)/description$',
views.page_edit_description,
name='combo-manager-page-edit-description',
),
- url(r'^pages/(?P\d+)/picture/$', views.page_edit_picture, name='combo-manager-page-edit-picture'),
- url(
+ re_path(r'^pages/(?P\d+)/picture/$', views.page_edit_picture, name='combo-manager-page-edit-picture'),
+ re_path(
r'^pages/(?P\d+)/remove-picture/$',
views.page_remove_picture,
name='combo-manager-page-remove-picture',
),
- url(
+ re_path(
r'^pages/(?P\d+)/extra-variables/$',
views.page_edit_extra_variables,
name='combo-manager-page-edit-extra-variables',
),
- url(
+ re_path(
r'^pages/(?P\d+)/delete$',
pages_admin_required(views.page_delete),
name='combo-manager-page-delete',
),
- url(r'^pages/(?P\d+)/export$', views.page_export, name='combo-manager-page-export'),
- url(
+ re_path(r'^pages/(?P\d+)/export$', views.page_export, name='combo-manager-page-export'),
+ re_path(
r'^pages/(?P\d+)/add/$',
pages_admin_required(views.page_add_child),
name='combo-manager-page-add-child',
),
- url(
+ re_path(
r'^pages/(?P\d+)/duplicate$',
pages_admin_required(views.page_duplicate),
name='combo-manager-page-duplicate',
),
- url(
+ re_path(
r'^pages/(?P\d+)/save',
pages_admin_required(views.snapshot_save),
name='combo-manager-page-save',
),
- url(
+ re_path(
r'^pages/(?P\d+)/edit-roles/$',
pages_admin_required(views.page_edit_roles),
name='combo-manager-page-edit-roles',
),
- url(r'^pages/(?P\d+)/history$', views.page_history, name='combo-manager-page-history'),
- url(
+ re_path(r'^pages/(?P\d+)/history$', views.page_history, name='combo-manager-page-history'),
+ re_path(
r'^pages/(?P\d+)/history/(?P\d+)/$',
pages_admin_required(views.snapshot_restore),
name='combo-manager-snapshot-restore',
),
- url(
+ re_path(
r'^pages/(?P\d+)/history/(?P\d+)/export$',
pages_admin_required(views.snapshot_export),
name='combo-manager-snapshot-export',
),
- url(
+ re_path(
r'^pages/(?P\d+)/add-cell-to-(?P[\w_-]+)/(?P\w+)/(?P[\w-]+)/$',
views.page_add_cell,
name='combo-manager-page-add-cell',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/$',
views.page_edit_cell,
name='combo-manager-page-edit-cell',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/delete$',
views.page_delete_cell,
name='combo-manager-page-delete-cell',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/duplicate$',
views.page_duplicate_cell,
name='combo-manager-page-duplicate-cell',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/add-link/(?P[\w-]+)$',
views.page_list_cell_add_link,
name='combo-manager-page-list-cell-add-link',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/link/(?P[\w_-]+)/$',
views.page_list_cell_edit_link,
name='combo-manager-page-list-cell-edit-link',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/link/(?P[\w_-]+)/delete$',
views.page_list_cell_delete_link,
name='combo-manager-page-list-cell-delete-link',
),
- url(
+ re_path(
r'^pages/(?P\d+)/cell/(?P[\w_-]+)/order$',
views.link_list_order,
name='combo-manager-link-list-order',
),
- url(r'^pages/(?P\d+)/order$', views.cell_order, name='combo-manager-cell-order'),
- url(
+ re_path(r'^pages/(?P\d+)/order$', views.cell_order, name='combo-manager-cell-order'),
+ re_path(
r'^pages/(?P\d+)/placeholder/(?P[\w_-]+)/options$',
views.placeholder_options,
name='combo-manage-placeholder-options',
),
- url(r'^pages/order$', views.page_order, name='combo-manager-page-order'),
- url(
+ re_path(r'^pages/order$', views.page_order, name='combo-manager-page-order'),
+ re_path(
r'^pages/(?P[\w/_-]+)/$',
views.page_redirect_to_edit,
name='combo-manager-page-redirect-to-edit',
),
- url(r'^ckeditor/upload/', ckeditor_views.upload, name='ckeditor_upload'),
- url(r'^ckeditor/browse/', never_cache(assets_views.browse), name='ckeditor_browse'),
+ re_path(r'^ckeditor/upload/', ckeditor_views.upload, name='ckeditor_upload'),
+ re_path(r'^ckeditor/browse/', never_cache(assets_views.browse), name='ckeditor_browse'),
]
urlpatterns = plugins.register_plugins_manager_urls(urlpatterns)
diff --git a/combo/plugins.py b/combo/plugins.py
index 38174c6c..138d3c7e 100644
--- a/combo/plugins.py
+++ b/combo/plugins.py
@@ -18,7 +18,7 @@ import logging
from functools import wraps
from django.apps import apps
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from django.http import Http404
from django.views.debug import technical_404_response
@@ -38,7 +38,7 @@ def get_plugin_includes(plugin, url_serie):
return
urls = getattr(plugin, url_serie)()
if not hasattr(plugin, 'is_enabled'):
- return url('^', include(urls))
+ return re_path('^', include(urls))
def plugin_enabled(func):
@wraps(func)
@@ -51,7 +51,7 @@ def get_plugin_includes(plugin, url_serie):
from .urls_utils import decorated_includes
- return url('^', decorated_includes(plugin_enabled, include(urls)))
+ return re_path('^', decorated_includes(plugin_enabled, include(urls)))
def register_plugins_urls(urlpatterns):
@@ -78,9 +78,9 @@ def register_plugins_manager_urls(urlpatterns):
if urls:
post_urls.append(urls)
return (
- [url('', decorated_includes(staff_required, include(pre_urls)))]
+ [re_path('', decorated_includes(staff_required, include(pre_urls)))]
+ urlpatterns
- + [url('', decorated_includes(staff_required, include(post_urls)))]
+ + [re_path('', decorated_includes(staff_required, include(post_urls)))]
)
diff --git a/combo/public/urls.py b/combo/public/urls.py
index 7df37d35..79ba2455 100644
--- a/combo/public/urls.py
+++ b/combo/public/urls.py
@@ -14,21 +14,21 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.conf.urls import re_path
from combo.urls_utils import manager_required
from . import views
urlpatterns = [
- url(r'^api/menu-badges/$', views.menu_badges),
- url(
+ re_path(r'^api/menu-badges/$', views.menu_badges),
+ re_path(
r'^ajax/cell/(?P\d+)/(?P[\w_]+-\d+)/$',
views.ajax_page_cell,
name='combo-public-ajax-page-cell',
),
- url(r'^snapshot/(?P\w+)/$', manager_required(views.snapshot), name='combo-snapshot-view'),
- url(r'__style__/$', views.style),
- url(r'__skeleton__/$', views.skeleton),
- url(r'', views.page),
+ re_path(r'^snapshot/(?P\w+)/$', manager_required(views.snapshot), name='combo-snapshot-view'),
+ re_path(r'__style__/$', views.style),
+ re_path(r'__skeleton__/$', views.skeleton),
+ re_path(r'', views.page),
]
diff --git a/combo/urls.py b/combo/urls.py
index 1a81bee0..1b7f1740 100644
--- a/combo/urls.py
+++ b/combo/urls.py
@@ -15,7 +15,7 @@
# along with this program. If not, see .
from django.conf import settings
-from django.conf.urls import include, url
+from django.conf.urls import include, re_path
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
@@ -27,19 +27,19 @@ from .public.views import error404, login, logout, mellon_page_hook
from .urls_utils import decorated_includes, manager_required
urlpatterns = [
- url(r'^manage/', decorated_includes(manager_required, include(combo_manager_urls))),
- url(r'^admin/', admin.site.urls),
- url(r'^logout/$', logout, name='auth_logout'),
- url(r'^login/$', login, name='auth_login'),
- url(r'^404$', error404),
- url(r'^jsi18n$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
+ re_path(r'^manage/', decorated_includes(manager_required, include(combo_manager_urls))),
+ re_path(r'^admin/', admin.site.urls),
+ re_path(r'^logout/$', logout, name='auth_logout'),
+ re_path(r'^login/$', login, name='auth_login'),
+ re_path(r'^404$', error404),
+ re_path(r'^jsi18n$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
]
handler404 = error404
if 'mellon' in settings.INSTALLED_APPS:
urlpatterns.append(
- url(
+ re_path(
r'^accounts/mellon/',
include('mellon.urls'),
kwargs={
@@ -57,10 +57,10 @@ if settings.DEBUG and 'debug_toolbar' in settings.INSTALLED_APPS:
import debug_toolbar # pylint: disable=import-error
urlpatterns = [
- url(r'^__debug__/', include(debug_toolbar.urls)),
+ re_path(r'^__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
urlpatterns = plugins.register_plugins_urls(urlpatterns)
# other URLs are handled as public URLs
-urlpatterns.append(url(r'', include('combo.public.urls')))
+urlpatterns.append(re_path(r'', include('combo.public.urls')))
| | | |