Address RemovedInDjango40Warning (3)
In Django 3.1, django.conf.urls.url() is deprecated in favor of django.urls.re_path(). https://docs.djangoproject.com/en/4.0/releases/3.1/#id2 Change-Id: I484694f8718f61c022126a1935cf28fce075894b
This commit is contained in:
parent
cd7c1b5110
commit
d9266fd82c
@ -458,13 +458,13 @@ URLs
|
||||
----
|
||||
The auto-generated ``urls.py`` file is like::
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.mydashboard.mypanel import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
||||
|
||||
|
@ -209,12 +209,12 @@ urls.py
|
||||
Now that we have a panel, we need to provide a URL so that users can visit our
|
||||
new panel! This URL generally will point to a view.::
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from myplugin.content.mypanel import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
||||
views.py
|
||||
|
@ -176,17 +176,17 @@ the ``mypanel`` directory and add the following as a new url pattern::
|
||||
|
||||
The complete ``urls.py`` file should look like this::
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.mydashboard.mypanel import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$',
|
||||
views.IndexView.as_view(), name='index'),
|
||||
url(r'^(?P<instance_id>[^/]+)/create_snapshot/$',
|
||||
views.CreateSnapshotView.as_view(),
|
||||
name='create_snapshot'),
|
||||
re_path(r'^$',
|
||||
views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^(?P<instance_id>[^/]+)/create_snapshot/$',
|
||||
views.CreateSnapshotView.as_view(),
|
||||
name='create_snapshot'),
|
||||
]
|
||||
|
||||
|
||||
|
@ -31,8 +31,8 @@ import os
|
||||
|
||||
from django.conf import settings
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.urls import re_path
|
||||
from django.urls import reverse
|
||||
from django.utils.functional import empty
|
||||
from django.utils.functional import SimpleLazyObject
|
||||
@ -550,14 +550,15 @@ class Dashboard(Registry, HorizonComponent):
|
||||
default_panel = panel
|
||||
continue
|
||||
url_slug = panel.slug.replace('.', '/')
|
||||
urlpatterns.append(url(r'^%s/' % url_slug,
|
||||
_wrapped_include(panel._decorated_urls)))
|
||||
urlpatterns.append(
|
||||
re_path(r'^%s/' % url_slug,
|
||||
_wrapped_include(panel._decorated_urls)))
|
||||
# Now the default view, which should come last
|
||||
if not default_panel:
|
||||
raise NotRegistered('The default panel "%s" is not registered.'
|
||||
% self.default_panel)
|
||||
urlpatterns.append(
|
||||
url(r'', _wrapped_include(default_panel._decorated_urls)))
|
||||
re_path(r'', _wrapped_include(default_panel._decorated_urls)))
|
||||
|
||||
# Apply access controls to all views in the patterns
|
||||
permissions = getattr(self, 'permissions', [])
|
||||
@ -871,8 +872,9 @@ class Site(Registry, HorizonComponent):
|
||||
|
||||
# Compile the dynamic urlconf.
|
||||
for dash in self._registry.values():
|
||||
urlpatterns.append(url(r'^%s/' % dash.slug,
|
||||
_wrapped_include(dash._decorated_urls)))
|
||||
urlpatterns.append(
|
||||
re_path(r'^%s/' % dash.slug,
|
||||
_wrapped_include(dash._decorated_urls)))
|
||||
|
||||
# Return the three arguments to django.conf.urls.include
|
||||
return urlpatterns, self.namespace, self.slug
|
||||
|
@ -10,11 +10,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from {{ dash_path }}.{{ panel_name }} import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
from django.conf import settings
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.utils import timezone
|
||||
from django.views.decorators.http import last_modified
|
||||
from django.views.generic import TemplateView
|
||||
@ -28,28 +28,28 @@ from horizon.test.jasmine import jasmine
|
||||
from horizon import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^home/$', views.user_home, name='user_home')
|
||||
re_path(r'^home/$', views.user_home, name='user_home')
|
||||
]
|
||||
|
||||
last_modified_date = timezone.now()
|
||||
|
||||
# Client-side i18n URLconf.
|
||||
urlpatterns.extend([
|
||||
url(r'^i18n/js/(?P<packages>\S+?)/$',
|
||||
last_modified(lambda req, **kw: last_modified_date)(
|
||||
i18n.JavaScriptCatalog.as_view()),
|
||||
name='jsi18n'),
|
||||
url(r'^i18n/setlang/$',
|
||||
i18n.set_language,
|
||||
name="set_language"),
|
||||
url(r'^i18n/', include('django.conf.urls.i18n'))
|
||||
re_path(r'^i18n/js/(?P<packages>\S+?)/$',
|
||||
last_modified(lambda req, **kw: last_modified_date)(
|
||||
i18n.JavaScriptCatalog.as_view()),
|
||||
name='jsi18n'),
|
||||
re_path(r'^i18n/setlang/$',
|
||||
i18n.set_language,
|
||||
name="set_language"),
|
||||
re_path(r'^i18n/', include('django.conf.urls.i18n'))
|
||||
])
|
||||
|
||||
if settings.DEBUG:
|
||||
urlpatterns.extend([
|
||||
url(r'^jasmine-legacy/$',
|
||||
TemplateView.as_view(
|
||||
template_name="horizon/jasmine/jasmine_legacy.html"),
|
||||
name='jasmine_tests'),
|
||||
url(r'^jasmine/.*?$', jasmine.dispatcher),
|
||||
re_path(r'^jasmine-legacy/$',
|
||||
TemplateView.as_view(
|
||||
template_name="horizon/jasmine/jasmine_legacy.html"),
|
||||
name='jasmine_tests'),
|
||||
re_path(r'^jasmine/.*?$', jasmine.dispatcher),
|
||||
])
|
||||
|
@ -10,10 +10,10 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from horizon.test.test_dashboards.cats.kittens.views import IndexView
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -10,10 +10,10 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from horizon.test.test_dashboards.cats.tigers.views import IndexView
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -10,12 +10,12 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from horizon.test.test_dashboards.dogs.puppies.views import IndexView
|
||||
from horizon.test.test_dashboards.dogs.puppies.views import TwoTabsView
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', IndexView.as_view(), name='index'),
|
||||
url(r'^tabs/$', TwoTabsView.as_view(), name='tabs'),
|
||||
re_path(r'^$', IndexView.as_view(), name='index'),
|
||||
re_path(r'^tabs/$', TwoTabsView.as_view(), name='tabs'),
|
||||
]
|
||||
|
@ -21,9 +21,9 @@ URL patterns for testing Horizon views.
|
||||
"""
|
||||
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.contrib.auth import views
|
||||
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||
from django.urls import re_path
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
import horizon
|
||||
@ -32,16 +32,16 @@ from horizon.test.jasmine import jasmine
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'', horizon.base._wrapped_include(horizon.urls)),
|
||||
url(r"auth/login/",
|
||||
views.LoginView.as_view(template_name="auth/login.html"),
|
||||
name='login'),
|
||||
url(r'auth/', include('django.contrib.auth.urls')),
|
||||
url(r'^jasmine/.*?$', jasmine.dispatcher),
|
||||
url(r'^jasmine-legacy/$',
|
||||
TemplateView.as_view(
|
||||
template_name="horizon/jasmine/jasmine_legacy.html"),
|
||||
name='jasmine_tests'),
|
||||
re_path(r'', horizon.base._wrapped_include(horizon.urls)),
|
||||
re_path(r"auth/login/",
|
||||
views.LoginView.as_view(template_name="auth/login.html"),
|
||||
name='login'),
|
||||
re_path(r'auth/', include('django.contrib.auth.urls')),
|
||||
re_path(r'^jasmine/.*?$', jasmine.dispatcher),
|
||||
re_path(r'^jasmine-legacy/$',
|
||||
TemplateView.as_view(
|
||||
template_name="horizon/jasmine/jasmine_legacy.html"),
|
||||
name='jasmine_tests'),
|
||||
]
|
||||
|
||||
urlpatterns += staticfiles_urlpatterns()
|
||||
|
@ -12,14 +12,15 @@
|
||||
# limitations under the License.
|
||||
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.views import generic
|
||||
|
||||
from openstack_auth import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r"", include('openstack_auth.urls')),
|
||||
url(r"^websso/$", views.websso, name='websso'),
|
||||
url(r"^$", generic.TemplateView.as_view(template_name="auth/blank.html"))
|
||||
re_path(r"", include('openstack_auth.urls')),
|
||||
re_path(r"^websso/$", views.websso, name='websso'),
|
||||
re_path(r"^$",
|
||||
generic.TemplateView.as_view(template_name="auth/blank.html"))
|
||||
]
|
||||
|
@ -12,7 +12,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
from django.conf import settings
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.views import generic
|
||||
|
||||
from openstack_auth import utils
|
||||
@ -20,30 +20,31 @@ from openstack_auth import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r"^login/$", views.login, name='login'),
|
||||
url(r"^logout/$", views.logout, name='logout'),
|
||||
url(r'^switch/(?P<tenant_id>[^/]+)/$', views.switch,
|
||||
name='switch_tenants'),
|
||||
url(r'^switch_services_region/(?P<region_name>[^/]+)/$',
|
||||
views.switch_region,
|
||||
name='switch_services_region'),
|
||||
url(r'^switch_keystone_provider/(?P<keystone_provider>[^/]+)/$',
|
||||
views.switch_keystone_provider,
|
||||
name='switch_keystone_provider'),
|
||||
url(r'^switch_system_scope/$',
|
||||
views.switch_system_scope,
|
||||
name='switch_system_scope'),
|
||||
re_path(r"^login/$", views.login, name='login'),
|
||||
re_path(r"^logout/$", views.logout, name='logout'),
|
||||
re_path(r'^switch/(?P<tenant_id>[^/]+)/$', views.switch,
|
||||
name='switch_tenants'),
|
||||
re_path(r'^switch_services_region/(?P<region_name>[^/]+)/$',
|
||||
views.switch_region,
|
||||
name='switch_services_region'),
|
||||
re_path(r'^switch_keystone_provider/(?P<keystone_provider>[^/]+)/$',
|
||||
views.switch_keystone_provider,
|
||||
name='switch_keystone_provider'),
|
||||
re_path(r'^switch_system_scope/$',
|
||||
views.switch_system_scope,
|
||||
name='switch_system_scope'),
|
||||
]
|
||||
|
||||
if utils.allow_expired_passowrd_change():
|
||||
urlpatterns.append(
|
||||
url(r'^password/(?P<user_id>[^/]+)/$', views.PasswordView.as_view(),
|
||||
name='password')
|
||||
re_path(r'^password/(?P<user_id>[^/]+)/$',
|
||||
views.PasswordView.as_view(),
|
||||
name='password')
|
||||
)
|
||||
|
||||
if settings.WEBSSO_ENABLED:
|
||||
urlpatterns += [
|
||||
url(r"^websso/$", views.websso, name='websso'),
|
||||
url(r"^error/$",
|
||||
generic.TemplateView.as_view(template_name="403.html"))
|
||||
re_path(r"^websso/$", views.websso, name='websso'),
|
||||
re_path(r"^error/$",
|
||||
generic.TemplateView.as_view(template_name="403.html"))
|
||||
]
|
||||
|
@ -11,7 +11,8 @@
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
from django.conf import urls
|
||||
|
||||
from django.urls import re_path
|
||||
|
||||
urlpatterns = []
|
||||
|
||||
@ -27,6 +28,6 @@ def register(view):
|
||||
as_view() method. The url_regex attribute of the view should be a standard
|
||||
Django URL regex pattern.
|
||||
"""
|
||||
p = urls.url(view.url_regex, view.as_view())
|
||||
p = re_path(view.url_regex, view.as_view())
|
||||
urlpatterns.append(p)
|
||||
return view
|
||||
|
@ -12,10 +12,10 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.contrib.developer.form_builder import views
|
||||
|
||||
urlpatterns = [
|
||||
url('', views.IndexView.as_view(), name='index'),
|
||||
re_path('', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -14,11 +14,11 @@
|
||||
# under the License.
|
||||
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.contrib.developer.profiler import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -12,10 +12,10 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from horizon.browsers.views import AngularIndexView
|
||||
|
||||
urlpatterns = [
|
||||
url('', AngularIndexView.as_view(), name='index'),
|
||||
re_path('', AngularIndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -12,11 +12,11 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.contrib.developer.theme_preview import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -10,19 +10,19 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.aggregates \
|
||||
import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$',
|
||||
views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$',
|
||||
views.CreateView.as_view(), name='create'),
|
||||
url(r'^(?P<id>[^/]+)/update/$',
|
||||
views.UpdateView.as_view(), name='update'),
|
||||
url(r'^(?P<id>[^/]+)/manage_hosts/$',
|
||||
views.ManageHostsView.as_view(), name='manage_hosts'),
|
||||
re_path(r'^$',
|
||||
views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$',
|
||||
views.CreateView.as_view(), name='create'),
|
||||
re_path(r'^(?P<id>[^/]+)/update/$',
|
||||
views.UpdateView.as_view(), name='update'),
|
||||
re_path(r'^(?P<id>[^/]+)/manage_hosts/$',
|
||||
views.ManageHostsView.as_view(), name='manage_hosts'),
|
||||
]
|
||||
|
@ -10,20 +10,20 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.backups import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.AdminBackupsView.as_view(), name='index'),
|
||||
url(r'^(?P<backup_id>[^/]+)/$',
|
||||
views.AdminBackupDetailView.as_view(),
|
||||
name='detail'),
|
||||
url(r'^(?P<backup_id>[^/]+)/restore/$',
|
||||
views.AdminRestoreBackupView.as_view(),
|
||||
name='restore'),
|
||||
url(r'^(?P<backup_id>[^/]+)/update_status$',
|
||||
views.UpdateStatusView.as_view(),
|
||||
name='update_status'),
|
||||
re_path(r'^$', views.AdminBackupsView.as_view(), name='index'),
|
||||
re_path(r'^(?P<backup_id>[^/]+)/$',
|
||||
views.AdminBackupDetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(r'^(?P<backup_id>[^/]+)/restore/$',
|
||||
views.AdminRestoreBackupView.as_view(),
|
||||
name='restore'),
|
||||
re_path(r'^(?P<backup_id>[^/]+)/update_status$',
|
||||
views.UpdateStatusView.as_view(),
|
||||
name='update_status'),
|
||||
]
|
||||
|
@ -12,13 +12,13 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.defaults import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^update_defaults$',
|
||||
views.UpdateDefaultQuotasView.as_view(), name='update_defaults'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^update_defaults$',
|
||||
views.UpdateDefaultQuotasView.as_view(), name='update_defaults'),
|
||||
]
|
||||
|
@ -16,7 +16,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from horizon.browsers.views import AngularIndexView
|
||||
@ -28,16 +28,17 @@ if setting_utils.get_dict_config('ANGULAR_FEATURES', 'flavors_panel'):
|
||||
title = _("Flavors")
|
||||
# New angular panel
|
||||
urlpatterns = [
|
||||
url(r'^$', AngularIndexView.as_view(title=title), name='index'),
|
||||
url(r'^create/$', AngularIndexView.as_view(title=title),
|
||||
name='create'),
|
||||
url(r'^(?P<id>[^/]+)/update/$', AngularIndexView.as_view(title=title),
|
||||
name='index'),
|
||||
re_path(r'^$', AngularIndexView.as_view(title=title), name='index'),
|
||||
re_path(r'^create/$', AngularIndexView.as_view(title=title),
|
||||
name='create'),
|
||||
re_path(r'^(?P<id>[^/]+)/update/$',
|
||||
AngularIndexView.as_view(title=title),
|
||||
name='index'),
|
||||
]
|
||||
else:
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(r'^(?P<id>[^/]+)/update/$',
|
||||
views.UpdateView.as_view(), name='update'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(r'^(?P<id>[^/]+)/update/$',
|
||||
views.UpdateView.as_view(), name='update'),
|
||||
]
|
||||
|
@ -13,14 +13,14 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.floating_ips import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^allocate/$', views.AllocateView.as_view(), name='allocate'),
|
||||
url(r'^(?P<floating_ip_id>[^/]+)/detail/$',
|
||||
views.DetailView.as_view(), name='detail')
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^allocate/$', views.AllocateView.as_view(), name='allocate'),
|
||||
re_path(r'^(?P<floating_ip_id>[^/]+)/detail/$',
|
||||
views.DetailView.as_view(), name='detail')
|
||||
]
|
||||
|
@ -10,13 +10,15 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.group_types.specs \
|
||||
import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(r'^(?P<key>[^/]+)/edit/$', views.EditView.as_view(), name='edit'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(r'^(?P<key>[^/]+)/edit/$',
|
||||
views.EditView.as_view(),
|
||||
name='edit'),
|
||||
]
|
||||
|
@ -11,7 +11,7 @@
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.group_types.specs \
|
||||
import urls as specs_urls
|
||||
@ -20,12 +20,12 @@ from openstack_dashboard.dashboards.admin.group_types \
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.GroupTypesView.as_view(), name='index'),
|
||||
url(r'^create_type$', views.CreateGroupTypeView.as_view(),
|
||||
name='create_type'),
|
||||
url(r'^(?P<type_id>[^/]+)/update_type/$',
|
||||
views.EditGroupTypeView.as_view(),
|
||||
name='update_type'),
|
||||
url(r'^(?P<type_id>[^/]+)/specs/',
|
||||
include((specs_urls, 'specs'))),
|
||||
re_path(r'^$', views.GroupTypesView.as_view(), name='index'),
|
||||
re_path(r'^create_type$', views.CreateGroupTypeView.as_view(),
|
||||
name='create_type'),
|
||||
re_path(r'^(?P<type_id>[^/]+)/update_type/$',
|
||||
views.EditGroupTypeView.as_view(),
|
||||
name='update_type'),
|
||||
re_path(r'^(?P<type_id>[^/]+)/specs/',
|
||||
include((specs_urls, 'specs'))),
|
||||
]
|
||||
|
@ -10,19 +10,19 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.hypervisors.compute import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^(?P<compute_host>[^/]+)/evacuate_host$',
|
||||
views.EvacuateHostView.as_view(),
|
||||
name='evacuate_host'),
|
||||
url(r'^(?P<compute_host>[^/]+)/disable_service$',
|
||||
views.DisableServiceView.as_view(),
|
||||
name='disable_service'),
|
||||
url(r'^(?P<compute_host>[^/]+)/migrate_host$',
|
||||
views.MigrateHostView.as_view(),
|
||||
name='migrate_host'),
|
||||
re_path(r'^(?P<compute_host>[^/]+)/evacuate_host$',
|
||||
views.EvacuateHostView.as_view(),
|
||||
name='evacuate_host'),
|
||||
re_path(r'^(?P<compute_host>[^/]+)/disable_service$',
|
||||
views.DisableServiceView.as_view(),
|
||||
name='disable_service'),
|
||||
re_path(r'^(?P<compute_host>[^/]+)/migrate_host$',
|
||||
views.MigrateHostView.as_view(),
|
||||
name='migrate_host'),
|
||||
]
|
||||
|
@ -13,7 +13,7 @@
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.hypervisors.compute \
|
||||
import urls as compute_urls
|
||||
@ -21,9 +21,9 @@ from openstack_dashboard.dashboards.admin.hypervisors import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^(?P<hypervisor>[^/]+)/$',
|
||||
views.AdminDetailView.as_view(),
|
||||
name='detail'),
|
||||
url(r'^$', views.AdminIndexView.as_view(), name='index'),
|
||||
url(r'', include((compute_urls, 'compute'))),
|
||||
re_path(r'^(?P<hypervisor>[^/]+)/$',
|
||||
views.AdminDetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(r'^$', views.AdminIndexView.as_view(), name='index'),
|
||||
re_path(r'', include((compute_urls, 'compute'))),
|
||||
]
|
||||
|
@ -16,7 +16,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from horizon.browsers.views import AngularIndexView
|
||||
@ -27,16 +27,16 @@ if setting_utils.get_dict_config('ANGULAR_FEATURES', 'images_panel'):
|
||||
title = _("Images")
|
||||
# New angular images
|
||||
urlpatterns = [
|
||||
url(r'^$', AngularIndexView.as_view(title=title), name='index'),
|
||||
url(r'^(?P<image_id>[^/]+)/detail/$',
|
||||
AngularIndexView.as_view(title=title), name='detail'),
|
||||
re_path(r'^$', AngularIndexView.as_view(title=title), name='index'),
|
||||
re_path(r'^(?P<image_id>[^/]+)/detail/$',
|
||||
AngularIndexView.as_view(title=title), name='detail'),
|
||||
]
|
||||
else:
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(r'^(?P<image_id>[^/]+)/update/$',
|
||||
views.UpdateView.as_view(), name='update'),
|
||||
url(r'^(?P<image_id>[^/]+)/detail/$',
|
||||
views.DetailView.as_view(), name='detail')
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(r'^(?P<image_id>[^/]+)/update/$',
|
||||
views.UpdateView.as_view(), name='update'),
|
||||
re_path(r'^(?P<image_id>[^/]+)/detail/$',
|
||||
views.DetailView.as_view(), name='detail')
|
||||
]
|
||||
|
@ -16,11 +16,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.info import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -16,7 +16,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.instances import views
|
||||
|
||||
@ -25,15 +25,16 @@ INSTANCES = r'^(?P<instance_id>[^/]+)/%s$'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.AdminIndexView.as_view(), name='index'),
|
||||
url(INSTANCES % 'update', views.AdminUpdateView.as_view(), name='update'),
|
||||
url(INSTANCES % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
url(INSTANCES % 'console', views.console, name='console'),
|
||||
url(INSTANCES % 'vnc', views.vnc, name='vnc'),
|
||||
url(INSTANCES % 'mks', views.mks, name='mks'),
|
||||
url(INSTANCES % 'spice', views.spice, name='spice'),
|
||||
url(INSTANCES % 'rdp', views.rdp, name='rdp'),
|
||||
url(INSTANCES % 'live_migrate', views.LiveMigrateView.as_view(),
|
||||
name='live_migrate'),
|
||||
url(INSTANCES % 'rescue', views.RescueView.as_view(), name='rescue'),
|
||||
re_path(r'^$', views.AdminIndexView.as_view(), name='index'),
|
||||
re_path(INSTANCES % 'update', views.AdminUpdateView.as_view(),
|
||||
name='update'),
|
||||
re_path(INSTANCES % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
re_path(INSTANCES % 'console', views.console, name='console'),
|
||||
re_path(INSTANCES % 'vnc', views.vnc, name='vnc'),
|
||||
re_path(INSTANCES % 'mks', views.mks, name='mks'),
|
||||
re_path(INSTANCES % 'spice', views.spice, name='spice'),
|
||||
re_path(INSTANCES % 'rdp', views.rdp, name='rdp'),
|
||||
re_path(INSTANCES % 'live_migrate', views.LiveMigrateView.as_view(),
|
||||
name='live_migrate'),
|
||||
re_path(INSTANCES % 'rescue', views.RescueView.as_view(), name='rescue'),
|
||||
]
|
||||
|
@ -12,7 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.metadata_defs import views
|
||||
|
||||
@ -21,10 +21,10 @@ NAMESPACES = r'^(?P<namespace_id>[^/]+)/%s$'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.AdminIndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(NAMESPACES % 'update', views.UpdateView.as_view(), name='update'),
|
||||
url(NAMESPACES % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
url(r'^(?P<id>[^/]+)/resource_types/$',
|
||||
views.ManageResourceTypes.as_view(), name='resource_types'),
|
||||
re_path(r'^$', views.AdminIndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(NAMESPACES % 'update', views.UpdateView.as_view(), name='update'),
|
||||
re_path(NAMESPACES % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
re_path(r'^(?P<id>[^/]+)/resource_types/$',
|
||||
views.ManageResourceTypes.as_view(), name='resource_types'),
|
||||
]
|
||||
|
@ -12,7 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.networks.ports import views
|
||||
from openstack_dashboard.dashboards.admin.networks.ports.extensions. \
|
||||
@ -22,8 +22,8 @@ PORTS = r'^(?P<port_id>[^/]+)/%s$'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(PORTS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
url(PORTS % 'addallowedaddresspairs',
|
||||
addr_pairs_views.AddAllowedAddressPair.as_view(),
|
||||
name='addallowedaddresspairs'),
|
||||
re_path(PORTS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
re_path(PORTS % 'addallowedaddresspairs',
|
||||
addr_pairs_views.AddAllowedAddressPair.as_view(),
|
||||
name='addallowedaddresspairs'),
|
||||
]
|
||||
|
@ -12,7 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.networks.subnets import views
|
||||
|
||||
@ -21,5 +21,5 @@ SUBNETS = r'^(?P<subnet_id>[^/]+)/%s$'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(SUBNETS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
re_path(SUBNETS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
]
|
||||
|
@ -13,7 +13,7 @@
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import include
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.networks.agents \
|
||||
import views as agent_views
|
||||
@ -32,27 +32,27 @@ NETWORKS = r'^(?P<network_id>[^/]+)/%s$'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(NETWORKS % 'update', views.UpdateView.as_view(), name='update'),
|
||||
url(NETWORKS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
url(NETWORKS % r'detail\?tab=network_tabs__ports_tab$',
|
||||
views.DetailView.as_view(), name='ports_tab'),
|
||||
url(NETWORKS % r'detail\?tab=network_tabs__agents_tab$',
|
||||
views.DetailView.as_view(), name='agents_tab'),
|
||||
url(NETWORKS % r'detail\?tab=network_tabs__subnets_tab$',
|
||||
views.DetailView.as_view(), name='subnets_tab'),
|
||||
url(NETWORKS % 'agents/add',
|
||||
agent_views.AddView.as_view(), name='adddhcpagent'),
|
||||
url(NETWORKS % 'subnets/create',
|
||||
subnet_views.CreateView.as_view(), name='createsubnet'),
|
||||
url(NETWORKS % 'ports/create',
|
||||
port_views.CreateView.as_view(), name='addport'),
|
||||
url(r'^(?P<network_id>[^/]+)/subnets/(?P<subnet_id>[^/]+)/update$',
|
||||
subnet_views.UpdateView.as_view(), name='editsubnet'),
|
||||
url(r'^(?P<network_id>[^/]+)/ports/(?P<port_id>[^/]+)/update$',
|
||||
port_views.UpdateView.as_view(), name='editport'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(NETWORKS % 'update', views.UpdateView.as_view(), name='update'),
|
||||
re_path(NETWORKS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
re_path(NETWORKS % r'detail\?tab=network_tabs__ports_tab$',
|
||||
views.DetailView.as_view(), name='ports_tab'),
|
||||
re_path(NETWORKS % r'detail\?tab=network_tabs__agents_tab$',
|
||||
views.DetailView.as_view(), name='agents_tab'),
|
||||
re_path(NETWORKS % r'detail\?tab=network_tabs__subnets_tab$',
|
||||
views.DetailView.as_view(), name='subnets_tab'),
|
||||
re_path(NETWORKS % 'agents/add',
|
||||
agent_views.AddView.as_view(), name='adddhcpagent'),
|
||||
re_path(NETWORKS % 'subnets/create',
|
||||
subnet_views.CreateView.as_view(), name='createsubnet'),
|
||||
re_path(NETWORKS % 'ports/create',
|
||||
port_views.CreateView.as_view(), name='addport'),
|
||||
re_path(r'^(?P<network_id>[^/]+)/subnets/(?P<subnet_id>[^/]+)/update$',
|
||||
subnet_views.UpdateView.as_view(), name='editsubnet'),
|
||||
re_path(r'^(?P<network_id>[^/]+)/ports/(?P<port_id>[^/]+)/update$',
|
||||
port_views.UpdateView.as_view(), name='editport'),
|
||||
|
||||
url(r'^subnets/', include((subnet_urls, 'subnets'))),
|
||||
url(r'^ports/', include((port_urls, 'ports'))),
|
||||
re_path(r'^subnets/', include((subnet_urls, 'subnets'))),
|
||||
re_path(r'^ports/', include((port_urls, 'ports'))),
|
||||
]
|
||||
|
@ -13,11 +13,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.ngflavors import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
]
|
||||
|
@ -17,11 +17,11 @@
|
||||
# under the License.
|
||||
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.overview import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.GlobalOverview.as_view(), name='index'),
|
||||
re_path(r'^$', views.GlobalOverview.as_view(), name='index'),
|
||||
]
|
||||
|
@ -10,7 +10,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.rbac_policies import views
|
||||
|
||||
@ -19,12 +19,12 @@ RBAC_POLICY_URL = r'^(?P<rbac_policy_id>[^/]+)/%s$'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(RBAC_POLICY_URL % '$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
url(RBAC_POLICY_URL % 'update',
|
||||
views.UpdateView.as_view(),
|
||||
name='update'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(RBAC_POLICY_URL % '$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(RBAC_POLICY_URL % 'update',
|
||||
views.UpdateView.as_view(),
|
||||
name='update'),
|
||||
]
|
||||
|
@ -12,12 +12,12 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.routers.ports import views
|
||||
|
||||
PORTS = r'^(?P<port_id>[^/]+)/%s$'
|
||||
|
||||
urlpatterns = [
|
||||
url(PORTS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
re_path(PORTS % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
]
|
||||
|
@ -12,7 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.routers import views
|
||||
|
||||
@ -21,15 +21,15 @@ ROUTER_URL = r'^(?P<router_id>[^/]+)/%s'
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(ROUTER_URL % '$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
url(ROUTER_URL % 'update',
|
||||
views.UpdateView.as_view(),
|
||||
name='update'),
|
||||
url(r'^(?P<l3_agent_id>[^/]+)/l3_agent_list',
|
||||
views.L3AgentView.as_view(),
|
||||
name='l3_agent_list'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
re_path(ROUTER_URL % '$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(ROUTER_URL % 'update',
|
||||
views.UpdateView.as_view(),
|
||||
name='update'),
|
||||
re_path(r'^(?P<l3_agent_id>[^/]+)/l3_agent_list',
|
||||
views.L3AgentView.as_view(),
|
||||
name='l3_agent_list'),
|
||||
]
|
||||
|
@ -10,17 +10,17 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.snapshots import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.SnapshotsView.as_view(), name='index'),
|
||||
url(r'^(?P<snapshot_id>[^/]+)$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
url(r'^(?P<snapshot_id>[^/]+)/update_status/$',
|
||||
views.UpdateStatusView.as_view(),
|
||||
name='update_status'),
|
||||
re_path(r'^$', views.SnapshotsView.as_view(), name='index'),
|
||||
re_path(r'^(?P<snapshot_id>[^/]+)$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(r'^(?P<snapshot_id>[^/]+)/update_status/$',
|
||||
views.UpdateStatusView.as_view(),
|
||||
name='update_status'),
|
||||
]
|
||||
|
@ -12,7 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from horizon.browsers.views import AngularIndexView
|
||||
@ -20,7 +20,7 @@ from horizon.browsers.views import AngularIndexView
|
||||
|
||||
title = _("Trunks")
|
||||
urlpatterns = [
|
||||
url(r'^$', AngularIndexView.as_view(title=title), name='index'),
|
||||
url(r'^(?P<trunk_id>[^/]+)/$',
|
||||
AngularIndexView.as_view(title=title), name='detail'),
|
||||
re_path(r'^$', AngularIndexView.as_view(title=title), name='index'),
|
||||
re_path(r'^(?P<trunk_id>[^/]+)/$',
|
||||
AngularIndexView.as_view(title=title), name='detail'),
|
||||
]
|
||||
|
@ -12,13 +12,13 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.vg_snapshots import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^(?P<vg_snapshot_id>[^/]+)/detail/$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^(?P<vg_snapshot_id>[^/]+)/detail/$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
]
|
||||
|
@ -12,23 +12,23 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from openstack_dashboard.dashboards.admin.volume_groups import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^(?P<group_id>[^/]+)$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
url(r'^(?P<group_id>[^/]+)/remove_volumese/$',
|
||||
views.RemoveVolumesView.as_view(),
|
||||
name='remove_volumes'),
|
||||
url(r'^(?P<group_id>[^/]+)/delete/$',
|
||||
views.DeleteView.as_view(),
|
||||
name='delete'),
|
||||
url(r'^(?P<group_id>[^/]+)/manage/$',
|
||||
views.ManageView.as_view(),
|
||||
name='manage'),
|
||||
re_path(r'^$', views.IndexView.as_view(), name='index'),
|
||||
re_path(r'^(?P<group_id>[^/]+)$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail'),
|
||||
re_path(r'^(?P<group_id>[^/]+)/remove_volumese/$',
|
||||
views.RemoveVolumesView.as_view(),
|
||||
name='remove_volumes'),
|
||||
re_path(r'^(?P<group_id>[^/]+)/delete/$',
|
||||
views.DeleteView.as_view(),
|
||||
name='delete'),
|
||||
re_path(r'^(?P<group_id>[^/]+)/manage/$',
|
||||
views.ManageView.as_view(),
|
||||
name='manage'),
|
||||
]
|
||||
|