From 94f533f26e55dd82763793d95a1f0c748ce2cde3 Mon Sep 17 00:00:00 2001 From: Travis Tripp Date: Thu, 9 Jul 2015 18:15:45 -0600 Subject: [PATCH] Adding Angular Project Images Panel This patch creates a blank Images panel in the project dashboard. It follows the pattern established by the following merged commits: https://review.openstack.org/#/c/190865/ https://review.openstack.org/#/c/190852/ Dependent patches will be added for: - index table - forms - actions Change-Id: I2fe5492c3954aa8c1ed751d062d22f0fe8c5f3d1 Partially-Implements: blueprint angularize-images-table --- .../dashboards/project/ngimages/__init__.py | 0 .../dashboards/project/ngimages/panel.py | 28 +++++++++++++++++ .../ngimages/templates/ngimages/index.html | 10 +++++++ .../dashboards/project/ngimages/urls.py | 24 +++++++++++++++ .../dashboards/project/ngimages/views.py | 19 ++++++++++++ .../enabled/_103_project_images_panel.py | 30 +++++++++++++++++++ openstack_dashboard/enabled/_10_project.py | 4 ++- 7 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 openstack_dashboard/dashboards/project/ngimages/__init__.py create mode 100644 openstack_dashboard/dashboards/project/ngimages/panel.py create mode 100644 openstack_dashboard/dashboards/project/ngimages/templates/ngimages/index.html create mode 100644 openstack_dashboard/dashboards/project/ngimages/urls.py create mode 100644 openstack_dashboard/dashboards/project/ngimages/views.py create mode 100644 openstack_dashboard/enabled/_103_project_images_panel.py diff --git a/openstack_dashboard/dashboards/project/ngimages/__init__.py b/openstack_dashboard/dashboards/project/ngimages/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/openstack_dashboard/dashboards/project/ngimages/panel.py b/openstack_dashboard/dashboards/project/ngimages/panel.py new file mode 100644 index 0000000000..0a3708b921 --- /dev/null +++ b/openstack_dashboard/dashboards/project/ngimages/panel.py @@ -0,0 +1,28 @@ +# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, 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.utils.translation import ugettext_lazy as _ + +import horizon + +from openstack_dashboard.dashboards.project import dashboard + + +class NGImages(horizon.Panel): + name = _("Images") + slug = 'ngimages' + permissions = ('openstack.services.image',) + + +dashboard.Project.register(NGImages) diff --git a/openstack_dashboard/dashboards/project/ngimages/templates/ngimages/index.html b/openstack_dashboard/dashboards/project/ngimages/templates/ngimages/index.html new file mode 100644 index 0000000000..263296534b --- /dev/null +++ b/openstack_dashboard/dashboards/project/ngimages/templates/ngimages/index.html @@ -0,0 +1,10 @@ +{% extends 'base.html' %} +{% load i18n %} +{% block title %}{% trans "Images" %}{% endblock %} + +{% block page_header %} + {% include "horizon/common/_domain_page_header.html" with title=_("Images") %} +{% endblock page_header %} + +{% block main %} +{% endblock %} diff --git a/openstack_dashboard/dashboards/project/ngimages/urls.py b/openstack_dashboard/dashboards/project/ngimages/urls.py new file mode 100644 index 0000000000..c596543f0e --- /dev/null +++ b/openstack_dashboard/dashboards/project/ngimages/urls.py @@ -0,0 +1,24 @@ +# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, 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.urls import patterns +from django.conf.urls import url + +from openstack_dashboard.dashboards.project.ngimages import views + + +urlpatterns = patterns( + 'openstack_dashboard.dashboards.project.ngimages.views', + url(r'^$', views.IndexView.as_view(), name='index'), +) diff --git a/openstack_dashboard/dashboards/project/ngimages/views.py b/openstack_dashboard/dashboards/project/ngimages/views.py new file mode 100644 index 0000000000..bd333867fa --- /dev/null +++ b/openstack_dashboard/dashboards/project/ngimages/views.py @@ -0,0 +1,19 @@ +# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, 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.views import generic + + +class IndexView(generic.TemplateView): + template_name = 'project/ngimages/index.html' diff --git a/openstack_dashboard/enabled/_103_project_images_panel.py b/openstack_dashboard/enabled/_103_project_images_panel.py new file mode 100644 index 0000000000..52d5e07764 --- /dev/null +++ b/openstack_dashboard/enabled/_103_project_images_panel.py @@ -0,0 +1,30 @@ +# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, 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. + +# The slug of the dashboard the PANEL associated with. Required. +PANEL_DASHBOARD = 'project' + +# The slug of the panel group the PANEL is associated with. +# If you want the panel to show up without a panel group, +# use the panel group "default". +PANEL_GROUP = 'compute' + +# The slug of the panel to be added to HORIZON_CONFIG. Required. +PANEL = 'ngimages' + +# If set to True, this settings file will not be added to the settings. +DISABLED = True + +# Python panel class of the PANEL to be added. +ADD_PANEL = ('openstack_dashboard.dashboards.project.ngimages.panel.NGImages') diff --git a/openstack_dashboard/enabled/_10_project.py b/openstack_dashboard/enabled/_10_project.py index 4b87310609..37c606dbd3 100644 --- a/openstack_dashboard/enabled/_10_project.py +++ b/openstack_dashboard/enabled/_10_project.py @@ -21,7 +21,9 @@ ADD_EXCEPTIONS = {} # A list of applications to be added to INSTALLED_APPS. ADD_INSTALLED_APPS = ['openstack_dashboard.dashboards.project'] -ADD_ANGULAR_MODULES = [] +ADD_ANGULAR_MODULES = [ + 'hz.dashboard.project', +] AUTO_DISCOVER_STATIC_FILES = True