From c65ccd055f40c9acb8d7bc0553039b5b024ca6bc Mon Sep 17 00:00:00 2001 From: Agate Berriot Date: Tue, 16 Aug 2022 14:35:03 +0200 Subject: [PATCH 3/4] replaced urls.url with url.re_path equivalent (#68183) --- combo/apps/assets/urls.py | 28 +++++------ combo/apps/calendar/urls.py | 6 +-- combo/apps/dashboard/urls.py | 12 ++--- combo/apps/dataviz/urls.py | 6 +-- combo/apps/gallery/urls.py | 10 ++-- combo/apps/lingo/urls.py | 68 ++++++++++++++------------ combo/apps/maps/urls.py | 22 ++++----- combo/apps/notifications/urls.py | 12 +++-- combo/apps/publik/urls.py | 4 +- combo/apps/pwa/urls.py | 24 ++++----- combo/apps/search/urls.py | 14 +++--- combo/apps/wcs/urls.py | 8 +-- combo/manager/urls.py | 84 ++++++++++++++++---------------- combo/plugins.py | 10 ++-- combo/public/urls.py | 14 +++--- combo/urls.py | 20 ++++---- 16 files changed, 175 insertions(+), 167 deletions(-) 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'))) -- 2.36.1