added filter for networks and router

client side filter is missing for
network and router tables on both admin
project.

this patch adding the filter for both
network and router tables.

Change-Id: I27027da70b8b1e1e50ecfa414fa19a14e11064d7
Closes-Bug: #1413550
This commit is contained in:
Masco Kaliyamoorthy 2015-01-22 17:56:47 +05:30
parent 04b692cc30
commit 6fb1ecd013
4 changed files with 25 additions and 4 deletions

View File

@ -107,7 +107,8 @@ class NetworksTable(tables.DataTable):
class Meta:
name = "networks"
verbose_name = _("Networks")
table_actions = (CreateNetwork, DeleteNetwork)
table_actions = (CreateNetwork, DeleteNetwork,
project_tables.NetworksFilterAction)
row_actions = (EditNetwork, DeleteNetwork)
def __init__(self, request, data=None, needs_form_wrapper=None, **kwargs):

View File

@ -46,6 +46,6 @@ class RoutersTable(r_tables.RoutersTable):
verbose_name = _("Routers")
status_columns = ["status"]
row_class = UpdateRow
table_actions = (DeleteRouter,)
table_actions = (DeleteRouter, r_tables.RoutersFilterAction)
row_actions = (EditRouter, DeleteRouter,)
Columns = ('tenant', 'name', 'status', 'distributed', 'ext_net')

View File

@ -148,6 +148,15 @@ DISPLAY_CHOICES = (
)
class NetworksFilterAction(tables.FilterAction):
def filter(self, table, networks, filter_string):
"""Naive case-insensitive search."""
query = filter_string.lower()
return [network for network in networks
if query in network.name.lower()]
class NetworksTable(tables.DataTable):
name = tables.Column("name_or_id",
verbose_name=_("Name"),
@ -165,5 +174,6 @@ class NetworksTable(tables.DataTable):
class Meta:
name = "networks"
verbose_name = _("Networks")
table_actions = (CreateNetwork, DeleteNetwork)
table_actions = (CreateNetwork, DeleteNetwork,
NetworksFilterAction)
row_actions = (EditNetwork, CreateSubnet, DeleteNetwork)

View File

@ -182,6 +182,15 @@ def get_external_network(router):
return _("-")
class RoutersFilterAction(tables.FilterAction):
def filter(self, table, routers, filter_string):
"""Naive case-insensitive search."""
query = filter_string.lower()
return [router for router in routers
if query in router.name.lower()]
class RoutersTable(tables.DataTable):
name = tables.Column("name",
verbose_name=_("Name"),
@ -219,5 +228,6 @@ class RoutersTable(tables.DataTable):
verbose_name = _("Routers")
status_columns = ["status"]
row_class = UpdateRow
table_actions = (CreateRouter, DeleteRouter)
table_actions = (CreateRouter, DeleteRouter,
RoutersFilterAction)
row_actions = (SetGateway, ClearGateway, EditRouter, DeleteRouter)