From 22ec1940fc1f0dac1737e69a8b88f22ffeb0c99d Mon Sep 17 00:00:00 2001 From: Yuval Brik Date: Tue, 24 Jan 2017 11:43:45 +0200 Subject: [PATCH] plans: add provider name to plans table Change-Id: I68763f5e7ae9993d48ffbd04af27deab084c1b6b --- karbor_dashboard/protectionplans/tables.py | 10 ++++++++++ karbor_dashboard/protectionplans/views.py | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/karbor_dashboard/protectionplans/tables.py b/karbor_dashboard/protectionplans/tables.py index dd37be5..da3f1d5 100644 --- a/karbor_dashboard/protectionplans/tables.py +++ b/karbor_dashboard/protectionplans/tables.py @@ -12,6 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. +from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ungettext_lazy @@ -109,11 +110,20 @@ class ProtectionPlanFilterAction(tables.FilterAction): if query in protectionplan.name.lower()] +def provider_link(plan): + return reverse('horizon:karbor:protectionproviders:detail', + args=(plan.provider_id, )) + + class ProtectionPlansTable(tables.DataTable): name = tables.Column('name', link="horizon:karbor:protectionplans:detail", verbose_name=_('Name')) + provider = tables.Column('provider_name', + link=provider_link, + verbose_name=_('Protection Provider')) + status = tables.Column('status', verbose_name=_('Status')) diff --git a/karbor_dashboard/protectionplans/views.py b/karbor_dashboard/protectionplans/views.py index c64dcf7..554428d 100644 --- a/karbor_dashboard/protectionplans/views.py +++ b/karbor_dashboard/protectionplans/views.py @@ -67,6 +67,17 @@ class IndexView(horizon_tables.DataTableView): self._more = False exceptions.handle(self.request, _('Unable to retrieve protection plans list.')) + providers = {} + try: + providers = {provider.id: provider.name + for provider in karborclient.provider_list(request)} + except Exception: + pass + + for plan in plans: + provider_id = plan.provider_id + plan.provider_name = providers.get(provider_id, provider_id) + return plans