filter search by extra spec for share type list
Added filter search by extra spec for share type list. Change-Id: I30133667419322be816f4168e3704fb4d5bc4efc
This commit is contained in:
parent
23b345e745
commit
cbff6b7326
|
@ -81,6 +81,14 @@ class UpdateShareType(tables.LinkAction):
|
|||
return {"project_id": project_id}
|
||||
|
||||
|
||||
class ShareTypesFilterAction(tables.FilterAction):
|
||||
filter_type = "server"
|
||||
filter_choices = (
|
||||
('name', _("Name "), True),
|
||||
('extra_specs', _("Extra Spec "), True),
|
||||
)
|
||||
|
||||
|
||||
class ShareTypesTable(tables.DataTable):
|
||||
name = tables.WrappingColumn("name", verbose_name=_("Name"))
|
||||
description = tables.WrappingColumn(
|
||||
|
@ -101,7 +109,7 @@ class ShareTypesTable(tables.DataTable):
|
|||
name = "share_types"
|
||||
verbose_name = _("Share Types")
|
||||
table_actions = (
|
||||
tables.NameFilterAction,
|
||||
ShareTypesFilterAction,
|
||||
CreateShareType,
|
||||
DeleteShareType,
|
||||
)
|
||||
|
|
|
@ -45,12 +45,34 @@ class ShareTypesView(tables.MultiTableView):
|
|||
exceptions.handle(
|
||||
self.request, _('Unable to retrieve share types.'))
|
||||
return []
|
||||
|
||||
# Convert dict with extra specs to friendly view
|
||||
for st in share_types:
|
||||
st.extra_specs = common_utils.metadata_to_str(
|
||||
st.extra_specs, 8, 45)
|
||||
share_types = self.get_filters(share_types)
|
||||
return share_types
|
||||
|
||||
def get_filters(self, share_types):
|
||||
table = self._tables['share_types']
|
||||
filters = self.get_server_filter_info(table.request, table)
|
||||
filter_string = filters['value']
|
||||
filter_field = filters['field']
|
||||
if filter_string and filter_field:
|
||||
filtered_data = []
|
||||
for st in share_types:
|
||||
|
||||
if filter_field == 'name':
|
||||
if st.name == filter_string:
|
||||
filtered_data.append(st)
|
||||
|
||||
if filter_field == 'extra_specs':
|
||||
if filter_string in st.extra_specs:
|
||||
filtered_data.append(st)
|
||||
return filtered_data
|
||||
else:
|
||||
return share_types
|
||||
|
||||
|
||||
class CreateShareTypeView(forms.ModalFormView):
|
||||
form_class = project_forms.CreateShareType
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Added filter search by extra spec for share type list.
|
Loading…
Reference in New Issue