Fix Angular errors in openstack_auth

Angular errors on login page are caused by loading ngdetails view.
Although registration of URL for ngdetails is executed on top level
of Horizon, ngdetails view is not needed to be loaded in login page,
i.e. openstack_auth side.
To fix this issue, this patch moves registration of URL for ngdetails
into openstack_dashboard side.

Conflicts:
	openstack_dashboard/test/urls.py
	openstack_dashboard/urls.py

The above conflicts are caused by bp/django2-support which landed in Rocky,
particully by https://review.openstack.org/#/c/527323/12.

Change-Id: Ib039417b4e666c2341f17ac05fd7723bc758816c
Closes-Bug: #1754133
Closes-Bug: #1753557
(cherry picked from commit f494c6f2d4)
This commit is contained in:
Shu Muto 2018-03-14 11:43:12 +09:00 committed by Akihiro Motoki
parent 63fd51cdd8
commit 6f6f46dc6d
5 changed files with 21 additions and 13 deletions

View File

@ -869,13 +869,6 @@ class Site(Registry, HorizonComponent):
urlpatterns.append(url(r'^%s/' % dash.slug,
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

View File

@ -328,12 +328,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."""

View File

@ -24,6 +24,8 @@ from django.conf.urls import url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views import defaults
from horizon.browsers import views as browsers_views
from openstack_dashboard.api import rest
from openstack_dashboard.test.jasmine import jasmine
from openstack_dashboard import views
@ -36,6 +38,9 @@ urlpatterns = [
url(r'^api/', include(rest.urls)),
url(r'^jasmine/(.*?)$', jasmine.dispatcher),
url(r'', include(horizon.urls)),
url(r'^ngdetails/',
browsers_views.AngularDetailsView.as_view(),
name='ngdetails'),
]
# Development static app and project media serving using the staticfiles app.

View File

@ -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)

View File

@ -28,6 +28,9 @@ from django.contrib.staticfiles.urls import staticfiles_urlpatterns
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
@ -38,6 +41,13 @@ urlpatterns = [
url(r'', 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)))