Merge pull request #8303 from martenson/admin-users-nonpurged

make admin/users grid filter on purged
This commit is contained in:
John Chilton
2019-07-15 16:27:28 -04:00
committed by GitHub
2 changed files with 25 additions and 1 deletions
+21
View File
@@ -777,6 +777,27 @@ class DeletedColumn(GridColumn):
return query
class PurgedColumn(GridColumn):
""" Column that tracks and filters for items with purged attribute. """
def get_accepted_filters(self):
""" Returns a list of accepted filters for this column. """
accepted_filter_labels_and_vals = {"nonpurged" : "False", "purged" : "True", "all": "All"}
accepted_filters = []
for label, val in accepted_filter_labels_and_vals.items():
args = {self.key: val}
accepted_filters.append(GridColumnFilter(label, args))
return accepted_filters
def filter(self, trans, user, query, column_filter):
"""Modify query to filter self.model_class by state."""
if column_filter == "All":
pass
elif column_filter in ["True", "False"]:
query = query.filter(self.model_class.purged == (column_filter == "True"))
return query
class StateColumn(GridColumn):
"""
Column that tracks and filters for items with state attribute.
@@ -130,7 +130,8 @@ class UserListGrid(grids.Grid):
ActivatedColumn("Activated", attach_popup=False),
APIKeyColumn("API Key", attach_popup=False),
# Columns that are valid for filtering but are not visible.
grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced")
grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced"),
grids.PurgedColumn("Purged", key="purged", visible=False, filterable="advanced")
]
columns.append(grids.MulticolFilterColumn("Search",
cols_to_filter=[columns[0], columns[1]],
@@ -170,6 +171,8 @@ class UserListGrid(grids.Grid):
]
num_rows_per_page = 50
use_paging = True
default_filter = dict(purged="False")
use_default_filter = True
def get_current_item(self, trans, **kwargs):
return trans.user