From 12d42c17826baa0710002c20da8a4de3d5147f1d Mon Sep 17 00:00:00 2001 From: Yuval Adar Date: Wed, 27 Jun 2018 13:15:16 +0300 Subject: [PATCH] Add templates panel to admin section Task: #22577 Story: #2002729 Change-Id: I82afa98506ca0b806277369dd423dc93690f1d28 --- MANIFEST.in | 5 ++- vitrage_dashboard/admin_templates/__init__.py | 19 +++++++++++ vitrage_dashboard/admin_templates/panel.py | 22 +++++++++++++ .../templates/admintemplates/index.html | 16 ++++++++++ vitrage_dashboard/admin_templates/urls.py | 21 ++++++++++++ vitrage_dashboard/admin_templates/version.py | 15 +++++++++ vitrage_dashboard/admin_templates/views.py | 32 +++++++++++++++++++ .../_4140_admin_template_vitrage_panel.py | 27 ++++++++++++++++ 8 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 vitrage_dashboard/admin_templates/__init__.py create mode 100644 vitrage_dashboard/admin_templates/panel.py create mode 100644 vitrage_dashboard/admin_templates/templates/admintemplates/index.html create mode 100644 vitrage_dashboard/admin_templates/urls.py create mode 100644 vitrage_dashboard/admin_templates/version.py create mode 100644 vitrage_dashboard/admin_templates/views.py create mode 100644 vitrage_dashboard/enabled/_4140_admin_template_vitrage_panel.py diff --git a/MANIFEST.in b/MANIFEST.in index 2b19aeb..44fa783 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -20,6 +20,9 @@ recursive-include vitrageentities/templates * recursive-include vitragetemplates/static * recursive-include vitragetemplates/templates * +recursive-include vitrageadmintemplates/static * +recursive-include vitrageadmintemplates/templates * + recursive-include vitrageadminalarms/static * recursive-include vitrageadminalarms/templates * @@ -27,4 +30,4 @@ recursive-include vitrageadminentities/static * recursive-include vitrageadminentities/templates * recursive-include vitrageadmindashboard/static * -recursive-include vitrageadmindashboard/templates * \ No newline at end of file +recursive-include vitrageadmindashboard/templates * diff --git a/vitrage_dashboard/admin_templates/__init__.py b/vitrage_dashboard/admin_templates/__init__.py new file mode 100644 index 0000000..4883a95 --- /dev/null +++ b/vitrage_dashboard/admin_templates/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# 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. + +import pbr.version + + +__version__ = pbr.version.VersionInfo( + 'vitrage-dashboard').version_string() diff --git a/vitrage_dashboard/admin_templates/panel.py b/vitrage_dashboard/admin_templates/panel.py new file mode 100644 index 0000000..33e1fa2 --- /dev/null +++ b/vitrage_dashboard/admin_templates/panel.py @@ -0,0 +1,22 @@ +# Copyright 2018 Nokia +# +# 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 + + +class TemplatesAdminVitrage(horizon.Panel): + name = _("Templates") + slug = "vitrageadmintemplates" diff --git a/vitrage_dashboard/admin_templates/templates/admintemplates/index.html b/vitrage_dashboard/admin_templates/templates/admintemplates/index.html new file mode 100644 index 0000000..c7ca3cb --- /dev/null +++ b/vitrage_dashboard/admin_templates/templates/admintemplates/index.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} +{% load i18n %} +{% block title %}{% trans "Templates List" %}{% endblock %} + +{% block page_header %} +{% include "horizon/common/_page_header.html" with title=_("Templates List") %} +{% endblock page_header %} + +{% block main %} + +
+ +
+ +{% endblock %} + diff --git a/vitrage_dashboard/admin_templates/urls.py b/vitrage_dashboard/admin_templates/urls.py new file mode 100644 index 0000000..580376b --- /dev/null +++ b/vitrage_dashboard/admin_templates/urls.py @@ -0,0 +1,21 @@ +# Copyright 2018 Nokia +# +# 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 url + +from vitrage_dashboard.admin_templates import views + +urlpatterns = [ + url(r'^$', views.IndexView.as_view(), name='index'), +] diff --git a/vitrage_dashboard/admin_templates/version.py b/vitrage_dashboard/admin_templates/version.py new file mode 100644 index 0000000..cbca802 --- /dev/null +++ b/vitrage_dashboard/admin_templates/version.py @@ -0,0 +1,15 @@ +# 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. + +import pbr.version + +version_info = pbr.version.VersionInfo('vitrage_templates_ui') diff --git a/vitrage_dashboard/admin_templates/views.py b/vitrage_dashboard/admin_templates/views.py new file mode 100644 index 0000000..32c98ce --- /dev/null +++ b/vitrage_dashboard/admin_templates/views.py @@ -0,0 +1,32 @@ +# Copyright 2018 Nokia +# +# 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 horizon import views + +import json + + +class IndexView(views.APIView): + # A very simple class-based view... + template_name = 'admintemplates/index.html' + + def get_data(self, request, context, *args, **kwargs): + topology_settings = { + 'VITRAGE_VERSION': { + 'VER': 1, + 'REL': 1 + } + } + context['TOPOLOGY_VITRAGE_SETTINGS'] = json.dumps(topology_settings) + return context diff --git a/vitrage_dashboard/enabled/_4140_admin_template_vitrage_panel.py b/vitrage_dashboard/enabled/_4140_admin_template_vitrage_panel.py new file mode 100644 index 0000000..350a114 --- /dev/null +++ b/vitrage_dashboard/enabled/_4140_admin_template_vitrage_panel.py @@ -0,0 +1,27 @@ +# 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 name of the panel to be added to HORIZON_CONFIG. Required. +PANEL = 'templates_vitrage_panel' +# The name of the dashboard the PANEL associated with. Required. +PANEL_DASHBOARD = 'admin' +# The name of the panel group the PANEL is associated with. +PANEL_GROUP = 'admin_vitrage_panel_group' + +# Python panel class of the PANEL to be added. +ADD_PANEL = 'vitrage_dashboard.admin_templates.panel.TemplatesAdminVitrage' + +ADD_INSTALLED_APPS = ['vitrage_dashboard.admin_templates'] + +ADD_ANGULAR_MODULES = ['horizon.dashboard.project.vitrage'] + +AUTO_DISCOVER_STATIC_FILES = True