Table actions improvement
Some tables need filter actions for convenience, some create buttons need "plus" icons, some delete buttons have to be placed at the end of list for consistency with the rest of UI tables. This patch fullfills all these needs. Also, all filter actions are replaced with the very same action from Horizon. Change-Id: Ie4efd6f10d2344dcf9cd8ad92460e6cd1ed7332b
This commit is contained in:
parent
bf0571267b
commit
9c9e0afa9b
@ -36,6 +36,7 @@ class CreateShareType(tables.LinkAction):
|
||||
verbose_name = _("Create Share Type")
|
||||
url = "horizon:admin:shares:create_type"
|
||||
classes = ("ajax-modal", "btn-create")
|
||||
icon = "plus"
|
||||
policy_rules = (("share", "share_extension:types_manage"),)
|
||||
|
||||
|
||||
@ -108,14 +109,6 @@ class UpdateShareType(tables.LinkAction):
|
||||
return {"project_id": project_id}
|
||||
|
||||
|
||||
class ShareTypesFilterAction(tables.FilterAction):
|
||||
|
||||
def filter(self, table, share_types, filter_string):
|
||||
"""Naive case-insensitive search."""
|
||||
q = filter_string.lower()
|
||||
return [st for st in share_types if q in st.name.lower()]
|
||||
|
||||
|
||||
class ShareTypesTable(tables.DataTable):
|
||||
name = tables.Column("name", verbose_name=_("Name"))
|
||||
extra_specs = tables.Column("extra_specs", verbose_name=_("Extra specs"), )
|
||||
@ -132,21 +125,14 @@ class ShareTypesTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "share_types"
|
||||
verbose_name = _("Share Types")
|
||||
table_actions = (CreateShareType, DeleteShareType,
|
||||
ShareTypesFilterAction, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
CreateShareType,
|
||||
DeleteShareType)
|
||||
row_actions = (
|
||||
UpdateShareType, DeleteShareType,
|
||||
UpdateShareType,
|
||||
ManageShareTypeAccess,
|
||||
)
|
||||
|
||||
|
||||
class SharesFilterAction(tables.FilterAction):
|
||||
|
||||
def filter(self, table, shares, filter_string):
|
||||
"""Naive case-insensitive search."""
|
||||
q = filter_string.lower()
|
||||
return [share for share in shares
|
||||
if q in share.name.lower()]
|
||||
DeleteShareType)
|
||||
|
||||
|
||||
class SharesTable(shares_tables.SharesTable):
|
||||
@ -173,14 +159,12 @@ class SharesTable(shares_tables.SharesTable):
|
||||
status_columns = ["status"]
|
||||
row_class = shares_tables.UpdateRow
|
||||
table_actions = (
|
||||
shares_tables.DeleteShare,
|
||||
tables.NameFilterAction,
|
||||
ManageShareAction,
|
||||
SharesFilterAction,
|
||||
)
|
||||
shares_tables.DeleteShare)
|
||||
row_actions = (
|
||||
shares_tables.DeleteShare,
|
||||
UnmanageShareAction,
|
||||
)
|
||||
shares_tables.DeleteShare)
|
||||
columns = (
|
||||
'tenant', 'host', 'name', 'size', 'status', 'visibility',
|
||||
'share_type', 'protocol', 'share_server',
|
||||
@ -262,8 +246,11 @@ class SnapshotsTable(tables.DataTable):
|
||||
verbose_name = _("Snapshots")
|
||||
status_columns = ["status"]
|
||||
row_class = snapshot_tables.UpdateRow
|
||||
table_actions = (DeleteSnapshot, )
|
||||
row_actions = (DeleteSnapshot, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
DeleteSnapshot)
|
||||
row_actions = (
|
||||
DeleteSnapshot,)
|
||||
|
||||
|
||||
class DeleteSecurityService(tables.DeleteAction):
|
||||
@ -313,8 +300,11 @@ class SecurityServiceTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "security_services"
|
||||
verbose_name = _("Security Services")
|
||||
table_actions = (DeleteSecurityService,)
|
||||
row_actions = (DeleteSecurityService,)
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
DeleteSecurityService)
|
||||
row_actions = (
|
||||
DeleteSecurityService,)
|
||||
|
||||
|
||||
class UpdateShareServerRow(tables.Row):
|
||||
@ -346,9 +336,12 @@ class NovaShareNetworkTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "share_networks"
|
||||
verbose_name = _("Share Networks")
|
||||
table_actions = (share_networks_tables.Delete, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
share_networks_tables.Delete)
|
||||
row_class = share_networks_tables.UpdateRow
|
||||
row_actions = (share_networks_tables.Delete, )
|
||||
row_actions = (
|
||||
share_networks_tables.Delete,)
|
||||
|
||||
|
||||
class NeutronShareNetworkTable(tables.DataTable):
|
||||
@ -373,18 +366,12 @@ class NeutronShareNetworkTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "share_networks"
|
||||
verbose_name = _("Share Networks")
|
||||
table_actions = (share_networks_tables.Delete, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
share_networks_tables.Delete)
|
||||
row_class = share_networks_tables.UpdateRow
|
||||
row_actions = (share_networks_tables.Delete, )
|
||||
|
||||
|
||||
class SharesServersFilterAction(tables.FilterAction):
|
||||
|
||||
def filter(self, table, shares, filter_string):
|
||||
"""Naive case-insensitive search."""
|
||||
q = filter_string.lower()
|
||||
return [share for share in shares
|
||||
if q in share.name.lower()]
|
||||
row_actions = (
|
||||
share_networks_tables.Delete,)
|
||||
|
||||
|
||||
class ShareServerTable(tables.DataTable):
|
||||
@ -432,9 +419,12 @@ class ShareServerTable(tables.DataTable):
|
||||
name = "share_servers"
|
||||
status_columns = ["status"]
|
||||
verbose_name = _("Share Server")
|
||||
table_actions = (DeleteShareServer, SharesServersFilterAction)
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
DeleteShareServer)
|
||||
row_class = UpdateShareServerRow
|
||||
row_actions = (DeleteShareServer, )
|
||||
row_actions = (
|
||||
DeleteShareServer,)
|
||||
|
||||
|
||||
class ShareInstancesTable(tables.DataTable):
|
||||
@ -468,7 +458,8 @@ class ShareInstancesTable(tables.DataTable):
|
||||
name = "share_instances"
|
||||
verbose_name = _("Share Instances")
|
||||
status_columns = ("status", )
|
||||
table_actions = (shares_tables.SharesFilterAction, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,)
|
||||
multi_select = False
|
||||
|
||||
def get_share_network_link(share_instance):
|
||||
|
@ -23,6 +23,7 @@ class Create(tables.LinkAction):
|
||||
verbose_name = _("Create Security Service")
|
||||
url = "horizon:project:shares:create_security_service"
|
||||
classes = ("ajax-modal", "btn-create")
|
||||
icon = "plus"
|
||||
policy_rules = (("share", "security_service:create"),)
|
||||
|
||||
|
||||
@ -61,5 +62,10 @@ class SecurityServiceTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "security_services"
|
||||
verbose_name = _("Security Services")
|
||||
table_actions = (Create, Delete)
|
||||
row_actions = (Edit, Delete,)
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
Create,
|
||||
Delete)
|
||||
row_actions = (
|
||||
Edit,
|
||||
Delete)
|
||||
|
@ -36,6 +36,7 @@ class Create(tables.LinkAction):
|
||||
verbose_name = _("Create Share Network")
|
||||
url = "horizon:project:shares:create_share_network"
|
||||
classes = ("ajax-modal", "btn-create")
|
||||
icon = "plus"
|
||||
policy_rules = (("share", "share_network:create"),)
|
||||
|
||||
|
||||
@ -105,9 +106,14 @@ class NovaShareNetworkTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "share_networks"
|
||||
verbose_name = _("Share Networks")
|
||||
table_actions = (Create, Delete, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
Create,
|
||||
Delete)
|
||||
row_class = UpdateRow
|
||||
row_actions = (EditShareNetwork, Delete, )
|
||||
row_actions = (
|
||||
EditShareNetwork,
|
||||
Delete)
|
||||
|
||||
|
||||
class NeutronShareNetworkTable(tables.DataTable):
|
||||
@ -148,7 +154,12 @@ class NeutronShareNetworkTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "share_networks"
|
||||
verbose_name = _("Share Networks")
|
||||
table_actions = (Create, Delete, )
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
Create,
|
||||
Delete)
|
||||
# status_columns = ["status"]
|
||||
row_class = UpdateRow
|
||||
row_actions = (EditShareNetwork, Delete, )
|
||||
row_actions = (
|
||||
EditShareNetwork,
|
||||
Delete)
|
||||
|
@ -68,6 +68,7 @@ class CreateShare(tables.LinkAction):
|
||||
verbose_name = _("Create Share")
|
||||
url = "horizon:project:shares:create"
|
||||
classes = ("ajax-modal", "btn-create")
|
||||
icon = "plus"
|
||||
policy_rules = (("share", "share:create"),)
|
||||
|
||||
def allowed(self, request, share=None):
|
||||
@ -211,15 +212,6 @@ class SharesTableBase(tables.DataTable):
|
||||
return obj.name or obj.id
|
||||
|
||||
|
||||
class SharesFilterAction(tables.FilterAction):
|
||||
|
||||
def filter(self, table, shares, filter_string):
|
||||
"""Naive case-insensitive search."""
|
||||
q = filter_string.lower()
|
||||
return [share for share in shares
|
||||
if q in share.name.lower()]
|
||||
|
||||
|
||||
class ManageRules(tables.LinkAction):
|
||||
name = "manage_rules"
|
||||
verbose_name = _("Manage Rules")
|
||||
@ -233,6 +225,7 @@ class AddRule(tables.LinkAction):
|
||||
verbose_name = _("Add rule")
|
||||
url = 'horizon:project:shares:rule_add'
|
||||
classes = ("ajax-modal", "btn-create")
|
||||
icon = "plus"
|
||||
policy_rules = (("share", "share:allow_access"),)
|
||||
|
||||
def allowed(self, request, share=None):
|
||||
@ -284,8 +277,11 @@ class RulesTable(tables.DataTable):
|
||||
verbose_name = _("Rules")
|
||||
status_columns = ["status"]
|
||||
row_class = UpdateRuleRow
|
||||
table_actions = (DeleteRule, AddRule)
|
||||
row_actions = (DeleteRule, )
|
||||
table_actions = (
|
||||
AddRule,
|
||||
DeleteRule)
|
||||
row_actions = (
|
||||
DeleteRule,)
|
||||
|
||||
|
||||
def get_share_network(share):
|
||||
@ -313,6 +309,14 @@ class SharesTable(SharesTableBase):
|
||||
verbose_name = _("Shares")
|
||||
status_columns = ["status"]
|
||||
row_class = UpdateRow
|
||||
table_actions = (CreateShare, DeleteShare, SharesFilterAction)
|
||||
row_actions = (EditShare, ExtendShare, snapshot_tables.CreateSnapshot,
|
||||
DeleteShare, ManageRules, EditShareMetadata)
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
CreateShare,
|
||||
DeleteShare)
|
||||
row_actions = (
|
||||
EditShare,
|
||||
ExtendShare,
|
||||
snapshot_tables.CreateSnapshot,
|
||||
ManageRules,
|
||||
EditShareMetadata,
|
||||
DeleteShare)
|
||||
|
@ -178,5 +178,10 @@ class SnapshotsTable(tables.DataTable):
|
||||
verbose_name = _("Snapshots")
|
||||
status_columns = ["status"]
|
||||
row_class = UpdateRow
|
||||
table_actions = (DeleteSnapshot, )
|
||||
row_actions = (DeleteSnapshot, CreateShareFromSnapshot, EditSnapshot)
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
DeleteSnapshot)
|
||||
row_actions = (
|
||||
EditSnapshot,
|
||||
CreateShareFromSnapshot,
|
||||
DeleteSnapshot)
|
||||
|
Loading…
Reference in New Issue
Block a user