diff --git a/horizon/base.py b/horizon/base.py index 4ed7d19ca8..2fe3bffc76 100644 --- a/horizon/base.py +++ b/horizon/base.py @@ -882,13 +882,6 @@ class Site(Registry, HorizonComponent): urlpatterns.append(url(r'^%s/' % dash.slug, _wrapped_include(dash._decorated_urls))) - # add URL for ngdetails - views = import_module('horizon.browsers.views') - urlpatterns.append(url(r'^ngdetails/', - views.AngularDetailsView.as_view(), - name='ngdetails')) - _decorate_urlconf(urlpatterns, require_auth) - # Return the three arguments to django.conf.urls.include return urlpatterns, self.namespace, self.slug diff --git a/horizon/test/unit/test_base.py b/horizon/test/unit/test_base.py index a0fc9ed755..9929f713f4 100644 --- a/horizon/test/unit/test_base.py +++ b/horizon/test/unit/test_base.py @@ -323,12 +323,6 @@ class HorizonTests(BaseHorizonTests): # Restore settings settings.SECURE_PROXY_SSL_HEADER = None - def test_urls_ngdetails(self): - resp = self.client.get("/ngdetails/") - self.assertEqual(200, resp.status_code) - resp = self.client.get("/ngdetails/OS::Glance::Image/xxxxx-xxx") - self.assertEqual(200, resp.status_code) - class GetUserHomeTests(BaseHorizonTests): """Test get_user_home parameters.""" diff --git a/openstack_dashboard/test/unit/test_views.py b/openstack_dashboard/test/unit/test_views.py index 66a1a6a505..ea23e4a6b7 100644 --- a/openstack_dashboard/test/unit/test_views.py +++ b/openstack_dashboard/test/unit/test_views.py @@ -44,3 +44,9 @@ class DashboardViewsTest(test.TestCase): url = views.get_url_with_pagination( req, None, 'prev', url_string, None) self.assertEqual(six.text_type('/project/instances/?prev=id'), url) + + def test_urls_ngdetails(self): + resp = self.client.get("/ngdetails/") + self.assertEqual(200, resp.status_code) + resp = self.client.get("/ngdetails/OS::Glance::Image/xxxxx-xxx") + self.assertEqual(200, resp.status_code) diff --git a/openstack_dashboard/test/urls.py b/openstack_dashboard/test/urls.py index 2b9024e394..48b262a3b7 100644 --- a/openstack_dashboard/test/urls.py +++ b/openstack_dashboard/test/urls.py @@ -25,6 +25,7 @@ from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.views import defaults import horizon.base +from horizon.browsers import views as browsers_views from openstack_dashboard.api import rest from openstack_dashboard.test.jasmine import jasmine @@ -38,6 +39,9 @@ urlpatterns = [ url(r'^api/', include(rest.urls)), url(r'^jasmine/(.*?)$', jasmine.dispatcher), url(r'', horizon.base._wrapped_include(horizon.urls)), + url(r'^ngdetails/', + browsers_views.AngularDetailsView.as_view(), + name='ngdetails'), ] # Development static app and project media serving using the staticfiles app. diff --git a/openstack_dashboard/urls.py b/openstack_dashboard/urls.py index 8ddd37ec01..17765076da 100644 --- a/openstack_dashboard/urls.py +++ b/openstack_dashboard/urls.py @@ -29,6 +29,8 @@ from django.views import defaults import horizon import horizon.base +from horizon.browsers import views as browsers_views +from horizon.decorators import require_auth from openstack_dashboard.api import rest from openstack_dashboard import views @@ -40,6 +42,13 @@ urlpatterns = [ url(r'', horizon.base._wrapped_include(horizon.urls)), ] +# add URL for ngdetails +ngdetails_url = url(r'^ngdetails/', + browsers_views.AngularDetailsView.as_view(), + name='ngdetails') +urlpatterns.append(ngdetails_url) +horizon.base._decorate_urlconf([ngdetails_url], require_auth) + for u in getattr(settings, 'AUTHENTICATION_URLS', ['openstack_auth.urls']): urlpatterns.append(url(r'^auth/', include(u)))