From 49e40509eb7e14d084437ed78f1929efe4d39c46 Mon Sep 17 00:00:00 2001 From: Rob Cresswell Date: Fri, 9 Jan 2015 13:48:03 +0000 Subject: [PATCH] Fixes inconsistent Edit between tables & details This patch addresses several instances where clicking Edit on a Detail page (such as Edit Port on the Port Detail Page) gave either more or less options than the equivalent action in the Table. This patch fixes any occurences so that Edit ___ show the same form and fields regardless of where it is clicked Closes-bug: 1408346 Change-Id: Ic2599d594b627bd7ab584d1a314360921e41a203 --- openstack_dashboard/dashboards/admin/images/views.py | 9 +++++++-- openstack_dashboard/dashboards/admin/instances/views.py | 1 + openstack_dashboard/dashboards/admin/networks/tests.py | 8 +------- openstack_dashboard/dashboards/admin/routers/views.py | 7 +++++++ .../dashboards/admin/volumes/volumes/views.py | 9 +++++++++ 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/openstack_dashboard/dashboards/admin/images/views.py b/openstack_dashboard/dashboards/admin/images/views.py index a067afbd90..e781684f6f 100644 --- a/openstack_dashboard/dashboards/admin/images/views.py +++ b/openstack_dashboard/dashboards/admin/images/views.py @@ -122,8 +122,13 @@ class UpdateView(views.UpdateView): class DetailView(views.DetailView): - """Admin placeholder for image detail view.""" - pass + + def get_context_data(self, **kwargs): + context = super(DetailView, self).get_context_data(**kwargs) + table = project_tables.AdminImagesTable(self.request) + context["url"] = reverse('horizon:admin:images:index') + context["actions"] = table.render_row_actions(context["image"]) + return context class UpdateMetadataView(forms.ModalFormView): diff --git a/openstack_dashboard/dashboards/admin/instances/views.py b/openstack_dashboard/dashboards/admin/instances/views.py index fff24e8862..0b43fb9025 100644 --- a/openstack_dashboard/dashboards/admin/instances/views.py +++ b/openstack_dashboard/dashboards/admin/instances/views.py @@ -59,6 +59,7 @@ def rdp(args, **kvargs): class AdminUpdateView(views.UpdateView): workflow_class = update_instance.AdminUpdateInstance + success_url = reverse_lazy("horizon:admin:instances:index") class AdminIndexView(tables.DataTableView): diff --git a/openstack_dashboard/dashboards/admin/networks/tests.py b/openstack_dashboard/dashboards/admin/networks/tests.py index 09979ba684..764a070efd 100644 --- a/openstack_dashboard/dashboards/admin/networks/tests.py +++ b/openstack_dashboard/dashboards/admin/networks/tests.py @@ -971,13 +971,7 @@ class NetworkPortTests(test.BaseAdminViewTests): .AndReturn(self.ports.first()) api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ - .AndReturn(mac_learning) - api.neutron.is_extension_supported(IsA(http.HttpRequest), - 'mac-learning')\ - .AndReturn(mac_learning) - api.neutron.is_extension_supported(IsA(http.HttpRequest), - 'mac-learning')\ - .AndReturn(mac_learning) + .MultipleTimes().AndReturn(mac_learning) self.mox.ReplayAll() res = self.client.get(reverse('horizon:admin:networks:ports:detail', diff --git a/openstack_dashboard/dashboards/admin/routers/views.py b/openstack_dashboard/dashboards/admin/routers/views.py index cf9d14c7a0..ad189af3e6 100644 --- a/openstack_dashboard/dashboards/admin/routers/views.py +++ b/openstack_dashboard/dashboards/admin/routers/views.py @@ -63,6 +63,13 @@ class DetailView(r_views.DetailView): template_name = 'admin/routers/detail.html' failure_url = reverse_lazy('horizon:admin:routers:index') + def get_context_data(self, **kwargs): + context = super(DetailView, self).get_context_data(**kwargs) + table = rtbl.RoutersTable(self.request) + context["url"] = self.failure_url + context["actions"] = table.render_row_actions(context["router"]) + return context + class UpdateView(r_views.UpdateView): form_class = rforms.UpdateForm diff --git a/openstack_dashboard/dashboards/admin/volumes/volumes/views.py b/openstack_dashboard/dashboards/admin/volumes/volumes/views.py index 7bfbc530d8..8aca7970d8 100644 --- a/openstack_dashboard/dashboards/admin/volumes/volumes/views.py +++ b/openstack_dashboard/dashboards/admin/volumes/volumes/views.py @@ -21,6 +21,8 @@ from horizon.utils import memoized from openstack_dashboard.api import cinder from openstack_dashboard.dashboards.admin.volumes.volumes \ import forms as volumes_forms +from openstack_dashboard.dashboards.admin.volumes.volumes \ + import tables as volumes_tables from openstack_dashboard.dashboards.project.volumes.volumes \ import views as volumes_views @@ -28,6 +30,13 @@ from openstack_dashboard.dashboards.project.volumes.volumes \ class DetailView(volumes_views.DetailView): template_name = "admin/volumes/volumes/detail.html" + def get_context_data(self, **kwargs): + context = super(DetailView, self).get_context_data(**kwargs) + table = volumes_tables.VolumesTable(self.request) + context["url"] = self.get_redirect_url() + context["actions"] = table.render_row_actions(context["volume"]) + return context + def get_redirect_url(self): return reverse('horizon:admin:volumes:index')