From 7dbb52e2b38cd031caade3ad8d433659fc1d7c70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Memo=20Garc=C3=ADa?= Date: Tue, 16 Feb 2016 14:37:53 +0000 Subject: [PATCH] Actions for a job no longer shows irrelevant actions for specific cases Resolves bug: 1546195 Change-Id: I6234a1d7bdbd2c5366fcf95290c60500b0625d1c --- disaster_recovery/actions/tables.py | 5 +++++ disaster_recovery/jobs/tables.py | 13 +++++++++++++ disaster_recovery/sessions/tables.py | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/disaster_recovery/actions/tables.py b/disaster_recovery/actions/tables.py index de640e0..6563971 100644 --- a/disaster_recovery/actions/tables.py +++ b/disaster_recovery/actions/tables.py @@ -87,6 +87,10 @@ def get_link(action): kwargs={'action_id': action.id}) +class UpdateRow(tables.Row): + ajax = True + + class ActionsTable(tables.DataTable): backup_name = tables.Column('backup_name', @@ -104,3 +108,4 @@ class ActionsTable(tables.DataTable): row_actions = (EditAction, DeleteAction,) table_actions = (BackupFilter, CreateAction, DeleteMultipleActions) multi_select = True + row_class = UpdateRow diff --git a/disaster_recovery/jobs/tables.py b/disaster_recovery/jobs/tables.py index 2a22dbc..bfc73dc 100644 --- a/disaster_recovery/jobs/tables.py +++ b/disaster_recovery/jobs/tables.py @@ -118,6 +118,9 @@ class StartJob(tables.Action): messages.success(request, _("Job has started")) return shortcuts.redirect('horizon:disaster_recovery:jobs:index') + def allowed(self, request, job=None): + return True + class StopJob(tables.Action): name = "stop_job" @@ -128,6 +131,11 @@ class StopJob(tables.Action): messages.success(request, _("Job has stopped")) return shortcuts.redirect('horizon:disaster_recovery:jobs:index') + def allowed(self, request, job=None): + if job.event == 'stop': + return False + return True + def get_link(row): return reverse('horizon:disaster_recovery:jobs:index', @@ -142,6 +150,10 @@ class CreateJob(tables.LinkAction): icon = "plus" +class UpdateRow(tables.Row): + ajax = True + + class JobsTable(tables.DataTable): job_name = tables.Column("description", link=get_link, @@ -174,6 +186,7 @@ class JobsTable(tables.DataTable): DeleteJob) footer = False multi_select = True + row_class = UpdateRow class DeleteAction(tables.DeleteAction): diff --git a/disaster_recovery/sessions/tables.py b/disaster_recovery/sessions/tables.py index 569c732..589f53a 100644 --- a/disaster_recovery/sessions/tables.py +++ b/disaster_recovery/sessions/tables.py @@ -137,6 +137,10 @@ class JobsTable(tables.DataTable): multi_select = True +class UpdateRow(tables.Row): + ajax = True + + class SessionsTable(tables.DataTable): description = tables.Column('description', link=get_link, @@ -155,3 +159,4 @@ class SessionsTable(tables.DataTable): DeleteSession,) footer = False multi_select = True + row_class = UpdateRow