django4: replaced urls.url with url.re_path equivalent (#68576)

This commit is contained in:
Agate 2022-08-31 10:29:38 +02:00
parent 1a17d3efa6
commit ff6c68b21c
21 changed files with 136 additions and 122 deletions

View File

@ -14,11 +14,11 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import path, re_path
from .views import JobDetailView, StatisticsListView
urlpatterns = [
url(r'jobs/(?P<pk>[\w,-]+)/$', JobDetailView.as_view(), name='api-job'),
url(r'statistics/$', StatisticsListView.as_view(), name='api-statistics-list'),
re_path(r'jobs/(?P<pk>[\w,-]+)/$', JobDetailView.as_view(), name='api-job'),
path('statistics/', StatisticsListView.as_view(), name='api-statistics-list'),
]

View File

@ -14,14 +14,14 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='arcgis-query-new'),
url(r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='arcgis-query-edit'),
url(
re_path(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='arcgis-query-new'),
re_path(r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='arcgis-query-edit'),
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/delete/$',
views.QueryDelete.as_view(),
name='arcgis-query-delete',

View File

@ -1,12 +1,12 @@
from django.conf.urls import url
from django.urls import re_path
from django.views.decorators.csrf import csrf_exempt
from .views import BdpDetailView, PostAdherentView, ResourcesView
urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/$', BdpDetailView.as_view(), name='bdp-view'),
url(r'^(?P<slug>[\w,-]+)/(?P<resources>[\w,-]+)/$', ResourcesView.as_view(), name='bdp-resources'),
url(
re_path(r'^(?P<slug>[\w,-]+)/$', BdpDetailView.as_view(), name='bdp-view'),
re_path(r'^(?P<slug>[\w,-]+)/(?P<resources>[\w,-]+)/$', ResourcesView.as_view(), name='bdp-resources'),
re_path(
r'^(?P<slug>[\w,-]+)/post/adherent/$',
csrf_exempt(PostAdherentView.as_view()),
name='bdp-post-adherent',

View File

@ -1,36 +1,36 @@
from django.conf.urls import url
from django.urls import re_path
from django.views.decorators.csrf import csrf_exempt
from passerelle.apps.clicrdv import views
urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/$', views.ClicRdvDetailView.as_view(), name='clicrdv-view'),
url(
re_path(r'^(?P<slug>[\w,-]+)/$', views.ClicRdvDetailView.as_view(), name='clicrdv-view'),
re_path(
r'^(?P<slug>[\w,-]+)/interventions/(?P<intervention_id>\d+)/datetimes/$',
views.DateTimesView.as_view(),
name='clicrdv-datetimes',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/interventions/(?P<intervention_id>\d+)/dates/$',
views.DatesView.as_view(),
name='clicrdv-dates',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/interventions/(?P<intervention_id>\d+)/(?P<date>[\d-]+)/times$',
views.TimesView.as_view(),
name='clicrdv-times',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/interventions/(?P<intervention_id>\d+)/create$',
csrf_exempt(views.CreateAppointmentView.as_view()),
name='clicrdv-create-appointment',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/create$',
csrf_exempt(views.CreateAppointmentView.as_view()),
name='clicrdv-create-appointment-qs',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/(?P<appointment_id>\d+)/cancel$',
views.CancelAppointmentView.as_view(),
name='clicrdv-cancel-appointment',

View File

@ -14,10 +14,10 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from .views import CmisTypeView
management_urlpatterns = [
url(r'^(?P<connector_slug>[\w,-]+)/type/$', CmisTypeView.as_view(), name='cmis-type'),
re_path(r'^(?P<connector_slug>[\w,-]+)/type/$', CmisTypeView.as_view(), name='cmis-type'),
]

View File

@ -14,19 +14,21 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from passerelle.apps.csvdatasource import views
management_urlpatterns = [
url(r'^(?P<connector_slug>[\w,-]+)/download/$', views.CsvDownload.as_view(), name='csv-download'),
url(r'^(?P<connector_slug>[\w,-]+)/queries/new/$', views.NewQueryView.as_view(), name='csv-new-query'),
url(
re_path(r'^(?P<connector_slug>[\w,-]+)/download/$', views.CsvDownload.as_view(), name='csv-download'),
re_path(
r'^(?P<connector_slug>[\w,-]+)/queries/new/$', views.NewQueryView.as_view(), name='csv-new-query'
),
re_path(
r'^(?P<connector_slug>[\w,-]+)/queries/(?P<pk>[\w,-]+)/$',
views.UpdateQueryView.as_view(),
name='csv-edit-query',
),
url(
re_path(
r'^(?P<connector_slug>[\w,-]+)/queries/(?P<pk>[\w,-]+)/delete$',
views.DeleteQueryView.as_view(),
name='csv-delete-query',

View File

@ -14,14 +14,14 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from django.views.decorators.csrf import csrf_exempt
from .views import GdcDetailView, PostDemandeView, StatusView, VoiesView
urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/$', GdcDetailView.as_view(), name='gdc-view'),
url(r'^(?P<slug>[\w,-]+)/voies/(?P<insee>\d+)$', VoiesView.as_view(), name='gdc-voies'),
url(r'^(?P<slug>[\w,-]+)/post/demande$', csrf_exempt(PostDemandeView.as_view()), name='gdc-post'),
url(r'^(?P<slug>[\w,-]+)/status/(?P<ref>\d+)', StatusView.as_view(), name='gdc-status'),
re_path(r'^(?P<slug>[\w,-]+)/$', GdcDetailView.as_view(), name='gdc-view'),
re_path(r'^(?P<slug>[\w,-]+)/voies/(?P<insee>\d+)$', VoiesView.as_view(), name='gdc-voies'),
re_path(r'^(?P<slug>[\w,-]+)/post/demande$', csrf_exempt(PostDemandeView.as_view()), name='gdc-post'),
re_path(r'^(?P<slug>[\w,-]+)/status/(?P<ref>\d+)', StatusView.as_view(), name='gdc-status'),
]

View File

@ -14,14 +14,16 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='opendatasoft-query-new'),
url(r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='opendatasoft-query-edit'),
url(
re_path(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='opendatasoft-query-new'),
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='opendatasoft-query-edit'
),
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/delete/$',
views.QueryDelete.as_view(),
name='opendatasoft-query-delete',

View File

@ -14,19 +14,19 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='opengis-query-new'),
url(r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='opengis-query-edit'),
url(
re_path(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='opengis-query-new'),
re_path(r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='opengis-query-edit'),
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/delete/$',
views.QueryDelete.as_view(),
name='opengis-query-delete',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/test-indexing-template/$',
views.TestIndexingTemplate.as_view(),
name='opengis-query-test-indexing-template',

View File

@ -1,10 +1,12 @@
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/request_token/$', views.RequestTokenView.as_view(), name='ovh-request-token'),
url(
re_path(
r'^(?P<slug>[\w,-]+)/request_token/$', views.RequestTokenView.as_view(), name='ovh-request-token'
),
re_path(
r'^(?P<slug>[\w,-]+)/confirm_token/(?P<uuid>[a-z0-9-]+)/$',
views.ConfirmTokenView.as_view(),
name='ovh-confirm-token',

View File

@ -14,16 +14,16 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='plone-restapi-query-new'),
url(
re_path(r'^(?P<slug>[\w,-]+)/query/new/$', views.QueryNew.as_view(), name='plone-restapi-query-new'),
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/$', views.QueryEdit.as_view(), name='plone-restapi-query-edit'
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/query/(?P<pk>\d+)/delete/$',
views.QueryDelete.as_view(),
name='plone-restapi-query-delete',

View File

@ -14,17 +14,19 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/mapping/new/$', views.MappingNew.as_view(), name='sp-fr-mapping-new'),
url(r'^(?P<slug>[\w,-]+)/mapping/(?P<pk>\d+)/$', views.MappingEdit.as_view(), name='sp-fr-mapping-edit'),
url(
re_path(r'^(?P<slug>[\w,-]+)/mapping/new/$', views.MappingNew.as_view(), name='sp-fr-mapping-new'),
re_path(
r'^(?P<slug>[\w,-]+)/mapping/(?P<pk>\d+)/$', views.MappingEdit.as_view(), name='sp-fr-mapping-edit'
),
re_path(
r'^(?P<slug>[\w,-]+)/mapping/(?P<pk>\d+)/delete/$',
views.MappingDelete.as_view(),
name='sp-fr-mapping-delete',
),
url(r'^(?P<slug>[\w,-]+)/run/$', views.run, name='sp-fr-run'),
re_path(r'^(?P<slug>[\w,-]+)/run/$', views.run, name='sp-fr-run'),
]

View File

@ -1,4 +1,4 @@
from django.conf.urls import url
from django.urls import path, re_path
from .views import (
AccessRightCreateView,
@ -14,22 +14,22 @@ from .views import (
)
access_urlpatterns = [
url(r'^$', ApiUserListView.as_view(), name='apiuser-list'),
url(r'^add$', ApiUserCreateView.as_view(), name='apiuser-add'),
url(r'^(?P<pk>[\w,-]+)/edit$', ApiUserUpdateView.as_view(), name='apiuser-edit'),
url(r'^(?P<pk>[\w,-]+)/delete$', ApiUserDeleteView.as_view(), name='apiuser-delete'),
url(r'^(?P<pk>[\w,-]+)/remove$', AccessRightDeleteView.as_view(), name='access-right-remove'),
url(
path('', ApiUserListView.as_view(), name='apiuser-list'),
path('add', ApiUserCreateView.as_view(), name='apiuser-add'),
re_path(r'^(?P<pk>[\w,-]+)/edit$', ApiUserUpdateView.as_view(), name='apiuser-edit'),
re_path(r'^(?P<pk>[\w,-]+)/delete$', ApiUserDeleteView.as_view(), name='apiuser-delete'),
re_path(r'^(?P<pk>[\w,-]+)/remove$', AccessRightDeleteView.as_view(), name='access-right-remove'),
re_path(
r'^accessright/add/(?P<resource_type>[\w,-]+)/(?P<resource_pk>[\w,-]+)/(?P<codename>[\w,-]+)/',
AccessRightCreateView.as_view(),
name='access-right-add',
),
url(
re_path(
r'logging/parameters/(?P<resource_type>[\w,-]+)/(?P<resource_pk>[\w,-]+)/$',
LoggingParametersUpdateView.as_view(),
name='logging-parameters',
),
url(
re_path(
r'manage/availability/(?P<resource_type>[\w,-]+)/(?P<resource_pk>[\w,-]+)/$',
ManageAvailabilityView.as_view(),
name='manage-availability',
@ -37,6 +37,6 @@ access_urlpatterns = [
]
import_export_urlpatterns = [
url(r'^import$', ImportSiteView.as_view(), name='import-site'),
url(r'^export$', ExportSiteView.as_view(), name='export-site'),
path('import', ImportSiteView.as_view(), name='import-site'),
path('export', ExportSiteView.as_view(), name='export-site'),
]

View File

@ -14,17 +14,17 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from passerelle.contrib.fake_family import views
urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/$', views.FakeFamilyDetailView.as_view(), name='fake-family-view'),
url(r'^(?P<slug>[\w,-]+)/dump/$', views.DumpView.as_view(), name='fake-family-dump'),
url(r'^(?P<slug>[\w,-]+)/family/link/$', views.LinkView.as_view(), name='fake-family-link'),
url(r'^(?P<slug>[\w,-]+)/family/unlink/$', views.UnlinkView.as_view(), name='fake-family-unlink'),
url(r'^(?P<slug>[\w,-]+)/family/$', views.FamilyView.as_view(), name='fake-family-info'),
url(
re_path(r'^(?P<slug>[\w,-]+)/$', views.FakeFamilyDetailView.as_view(), name='fake-family-view'),
re_path(r'^(?P<slug>[\w,-]+)/dump/$', views.DumpView.as_view(), name='fake-family-dump'),
re_path(r'^(?P<slug>[\w,-]+)/family/link/$', views.LinkView.as_view(), name='fake-family-link'),
re_path(r'^(?P<slug>[\w,-]+)/family/unlink/$', views.UnlinkView.as_view(), name='fake-family-unlink'),
re_path(r'^(?P<slug>[\w,-]+)/family/$', views.FamilyView.as_view(), name='fake-family-info'),
re_path(
r'^(?P<slug>[\w,-]+)/family/(?P<key>[\w,-]+)/$', views.FamilyKeyView.as_view(), name='fake-family-key'
),
]

View File

@ -14,24 +14,26 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from passerelle.contrib.solis_apa import views
urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/$', views.SolisAPADetailView.as_view(), name='solis-apa-view'),
url(r'^(?P<slug>[\w,-]+)/communes/$', views.CommunesView.as_view(), name='solis-apa-communes'),
url(r'^(?P<slug>[\w,-]+)/lieux/$', views.LieuxView.as_view(), name='solis-apa-lieux'),
url(r'^(?P<slug>[\w,-]+)/homonymes/$', views.HomonymesView.as_view(), name='solis-apa-homonymes'),
url(
re_path(r'^(?P<slug>[\w,-]+)/$', views.SolisAPADetailView.as_view(), name='solis-apa-view'),
re_path(r'^(?P<slug>[\w,-]+)/communes/$', views.CommunesView.as_view(), name='solis-apa-communes'),
re_path(r'^(?P<slug>[\w,-]+)/lieux/$', views.LieuxView.as_view(), name='solis-apa-lieux'),
re_path(r'^(?P<slug>[\w,-]+)/homonymes/$', views.HomonymesView.as_view(), name='solis-apa-homonymes'),
re_path(
r'^(?P<slug>[\w,-]+)/referential/(?P<reference_name>[\w,-]+)/$',
views.ReferentialView.as_view(),
name='solis-apa-referential',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/suivi/(?P<suivi_type>[\w,-]+)/$',
views.SuiviView.as_view(),
name='solis-apa-suivi',
),
url(r'^(?P<slug>[\w,-]+)/integration/$', views.IntegrationView.as_view(), name='solis-apa-integration'),
re_path(
r'^(?P<slug>[\w,-]+)/integration/$', views.IntegrationView.as_view(), name='solis-apa-integration'
),
]

View File

@ -14,17 +14,17 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import url
from django.urls import re_path
from .views import TypeIntervention, TypeInterventionAsBlocks
management_urlpatterns = [
url(
re_path(
r'^(?P<slug>[\w,-]+)/type-intervention/as-blocks/$',
TypeInterventionAsBlocks.as_view(),
name='toulouse-smart-type-intervention-as-blocks',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/type-intervention/$',
TypeIntervention.as_view(),
name='toulouse-smart-type-intervention',

View File

@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.apps import apps
from django.conf.urls import include, url
from django.urls import include, re_path
from .urls_utils import app_enabled, manager_required, required, trust_required
@ -36,30 +36,36 @@ def register_apps_urls(urlpatterns):
if hasattr(obj, 'get_before_urls'):
urls = obj.get_before_urls()
if urls:
before_urls.append(url('^', include(urls)))
before_urls.append(re_path('^', include(urls)))
if hasattr(obj, 'get_after_urls'):
urls = obj.get_after_urls()
if urls:
after_urls.append(url('^', include(urls)))
after_urls.append(re_path('^', include(urls)))
elif hasattr(obj, 'get_urls'):
url_prefix = '^%s/' % connector_slug
urls = obj.get_urls()
if urls:
urls = required(app_enabled(app.label), urls)
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
after_urls.append(
re_path(url_prefix, include(urls), kwargs={'connector': connector_slug})
)
if hasattr(obj, 'get_management_urls'):
url_prefix = '^manage/%s/' % connector_slug
urls = obj.get_management_urls()
if urls:
urls = required(app_enabled(app.label), urls)
urls = required(manager_required, urls)
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
after_urls.append(
re_path(url_prefix, include(urls), kwargs={'connector': connector_slug})
)
if hasattr(obj, 'get_statistics_urls'):
url_prefix = '^api/%s/' % connector_slug
urls = obj.get_statistics_urls()
if urls:
urls = required(app_enabled(app.label), urls)
urls = required(trust_required, urls)
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
after_urls.append(
re_path(url_prefix, include(urls), kwargs={'connector': connector_slug})
)
return before_urls + urlpatterns + after_urls

View File

@ -16,11 +16,10 @@
import logging
import re
from django.conf.urls import url
from django.contrib.postgres.fields import ArrayField
from django.core.validators import RegexValidator
from django.db import models
from django.urls import reverse
from django.urls import re_path, reverse
from django.utils.module_loading import import_string
from django.utils.translation import gettext_lazy as _
@ -113,7 +112,7 @@ class SMSResource(BaseResource):
from .views import SmsStatisticsView
statistics_urlpatterns = [
url(
re_path(
r'^(?P<slug>[\w,-]+)/sms-count/$',
SmsStatisticsView.as_view(),
name='api-statistics-sms-%s' % cls.get_connector_slug(),

View File

@ -1,7 +1,7 @@
from django.conf.urls import url
from django.urls import re_path
from . import views
management_urlpatterns = [
url(r'^(?P<slug>[\w,-]+)/test-send/$', views.SmsTestSendView.as_view(), name='sms-test-send'),
re_path(r'^(?P<slug>[\w,-]+)/test-send/$', views.SmsTestSendView.as_view(), name='sms-test-send'),
]

View File

@ -1,8 +1,8 @@
from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.auth.decorators import login_required
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.urls import include, path, re_path
from django.views.static import serve as static_serve
from .api.urls import urlpatterns as api_urls
@ -30,21 +30,21 @@ from .views import (
admin.autodiscover()
urlpatterns = [
url(r'^$', HomePageView.as_view(), name='homepage'),
url(r'^manage/$', manager_required(ManageView.as_view()), name='manage-home'),
url(r'^manage/menu.json$', manager_required(menu_json), name='menu-json'),
url(r'^manage/add$', manager_required(ManageAddView.as_view()), name='add-connector'),
url(
path('', HomePageView.as_view(), name='homepage'),
path('manage/', manager_required(ManageView.as_view()), name='manage-home'),
re_path(r'^manage/menu.json$', manager_required(menu_json), name='menu-json'),
path('manage/add', manager_required(ManageAddView.as_view()), name='add-connector'),
re_path(
r'^media/(?P<path>.*)$',
login_required(static_serve),
{
'document_root': settings.MEDIA_ROOT,
},
),
url(r'^admin/', admin.site.urls),
url(r'^manage/access/', decorated_includes(manager_required, include(access_urlpatterns))),
url(r'^manage/', decorated_includes(manager_required, include(import_export_urlpatterns))),
url('^api/', include(api_urls)),
re_path(r'^admin/', admin.site.urls),
re_path(r'^manage/access/', decorated_includes(manager_required, include(access_urlpatterns))),
re_path(r'^manage/', decorated_includes(manager_required, include(import_export_urlpatterns))),
re_path('^api/', include(api_urls)),
]
# add patterns from apps
@ -52,13 +52,13 @@ urlpatterns = register_apps_urls(urlpatterns)
# add authentication patterns
urlpatterns += [
url(r'^logout/$', logout, name='auth_logout'),
url(r'^login/$', login, name='auth_login'),
path('logout/', logout, name='auth_logout'),
path('login/', login, name='auth_login'),
]
if 'mellon' in settings.INSTALLED_APPS:
urlpatterns += [
url(
re_path(
r'^accounts/mellon/',
include('mellon.urls'),
kwargs={
@ -69,47 +69,47 @@ if 'mellon' in settings.INSTALLED_APPS:
urlpatterns += [
url(
re_path(
r'^manage/(?P<connector>[\w,-]+)/',
decorated_includes(
manager_required,
include(
[
url(r'^add$', GenericCreateConnectorView.as_view(), name='create-connector'),
url(
path('add', GenericCreateConnectorView.as_view(), name='create-connector'),
re_path(
r'^(?P<slug>[\w,-]+)/delete$',
GenericDeleteConnectorView.as_view(),
name='delete-connector',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/edit$', GenericEditConnectorView.as_view(), name='edit-connector'
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/logs/$',
GenericViewLogsConnectorView.as_view(),
name='view-logs-connector',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/logs/(?P<log_pk>\d+)/$',
GenericLogView.as_view(),
name='view-log',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/jobs/$',
GenericViewJobsConnectorView.as_view(),
name='view-jobs-connector',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/jobs/(?P<job_pk>\d+)/$',
GenericJobView.as_view(),
name='view-job',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/jobs/(?P<job_pk>\d+)/restart/$',
GenericRestartJobView.as_view(),
name='restart-job',
),
url(
re_path(
r'^(?P<slug>[\w,-]+)/export$',
GenericExportConnectorView.as_view(),
name='export-connector',
@ -121,10 +121,10 @@ urlpatterns += [
]
urlpatterns += [
url(
re_path(
r'^(?P<connector>[\w,-]+)/(?P<slug>[\w,-]+)/$', GenericConnectorView.as_view(), name='view-connector'
),
url(
re_path(
r'^(?P<connector>[\w,-]+)/(?P<slug>[\w,-]+)/(?P<endpoint>[\w,-.]+)(?:/(?P<rest>.*))?$',
GenericEndpointView.as_view(),
name='generic-endpoint',
@ -135,7 +135,7 @@ 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 += staticfiles_urlpatterns()

View File

@ -25,7 +25,6 @@ from urllib.parse import quote
from dateutil import parser as date_parser
from django.apps import apps
from django.conf import settings
from django.conf.urls import url
from django.contrib.auth import logout as auth_logout
from django.contrib.auth import views as auth_views
from django.core.cache import cache
@ -34,7 +33,7 @@ from django.db import transaction
from django.db.models import Q
from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404, resolve_url
from django.urls import reverse
from django.urls import re_path, reverse
from django.utils.encoding import force_bytes, force_str
from django.utils.timezone import is_naive, make_aware
from django.utils.translation import gettext_lazy as _
@ -431,7 +430,7 @@ class GenericEndpointView(GenericConnectorMixin, SingleObjectMixin, View):
if not method.endpoint_info.name == kwargs.get('endpoint'):
continue
if method.endpoint_info.pattern:
pattern = url(method.endpoint_info.pattern, method)
pattern = re_path(method.endpoint_info.pattern, method)
match = pattern.resolve(kwargs.get('rest') or '')
if match:
self.endpoint = method
@ -584,7 +583,7 @@ class GenericEndpointView(GenericConnectorMixin, SingleObjectMixin, View):
def get(self, request, *args, **kwargs):
if self.endpoint.endpoint_info.pattern:
pattern = url(self.endpoint.endpoint_info.pattern, self.endpoint)
pattern = re_path(self.endpoint.endpoint_info.pattern, self.endpoint)
match = pattern.resolve(kwargs.get('rest') or '')
if not match:
raise Http404()