Commit 38152bcd authored by Paul Brown's avatar Paul Brown

improve column_filters docs

parent f2a53614
...@@ -62,10 +62,9 @@ class UserAdmin(sqla.ModelView): ...@@ -62,10 +62,9 @@ class UserAdmin(sqla.ModelView):
# each filter in the list is a filter operation (equals, not equals, etc) # each filter in the list is a filter operation (equals, not equals, etc)
# filters with the same name will appear as operations under the same filter # filters with the same name will appear as operations under the same filter
column_filters = [ column_filters = [
FilterEqual(User.last_name, 'Last Name'), FilterEqual(column=User.last_name, name='Last Name'),
FilterLastNameBrown( FilterLastNameBrown(column=User.last_name, name='Last Name',
User.last_name, 'Last Name', options=(('1', 'Yes'), ('0', 'No')) options=(('1', 'Yes'), ('0', 'No')))
)
] ]
......
...@@ -53,9 +53,11 @@ class ModelView(BaseModelView): ...@@ -53,9 +53,11 @@ class ModelView(BaseModelView):
Collection of the column filters. Collection of the column filters.
Can contain either field names or instances of Can contain either field names or instances of
:class:`flask_admin.contrib.mongoengine.filters.BaseFilter` :class:`flask_admin.contrib.mongoengine.filters.BaseMongoEngineFilter`
classes. classes.
Filters will be grouped by name when displayed in the drop-down.
For example:: For example::
class MyModelView(BaseModelView): class MyModelView(BaseModelView):
...@@ -63,8 +65,32 @@ class ModelView(BaseModelView): ...@@ -63,8 +65,32 @@ class ModelView(BaseModelView):
or:: or::
from flask_admin.contrib.mongoengine.filters import BooleanEqualFilter
class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(column=User.name, name='Name'),)
or::
from flask_admin.contrib.mongoengine.filters import BaseMongoEngineFilter
class FilterLastNameBrown(BaseMongoEngineFilter):
def apply(self, query, value):
if value == '1':
return query.filter(self.column == "Brown")
else:
return query.filter(self.column != "Brown")
def operation(self):
return 'is Brown'
class MyModelView(BaseModelView): class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name')) column_filters = [
FilterLastNameBrown(
column=User.last_name, name='Last Name',
options=(('1', 'Yes'), ('0', 'No'))
)
]
""" """
model_form_converter = CustomModelConverter model_form_converter = CustomModelConverter
......
...@@ -27,7 +27,9 @@ class ModelView(BaseModelView): ...@@ -27,7 +27,9 @@ class ModelView(BaseModelView):
Collection of the column filters. Collection of the column filters.
Can contain either field names or instances of Can contain either field names or instances of
:class:`flask_admin.contrib.peewee.filters.BaseFilter` classes. :class:`flask_admin.contrib.peewee.filters.BasePeeweeFilter` classes.
Filters will be grouped by name when displayed in the drop-down.
For example:: For example::
...@@ -36,8 +38,32 @@ class ModelView(BaseModelView): ...@@ -36,8 +38,32 @@ class ModelView(BaseModelView):
or:: or::
from flask_admin.contrib.peewee.filters import BooleanEqualFilter
class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(column=User.name, name='Name'),)
or::
from flask_admin.contrib.peewee.filters import BasePeeweeFilter
class FilterLastNameBrown(BasePeeweeFilter):
def apply(self, query, value):
if value == '1':
return query.filter(self.column == "Brown")
else:
return query.filter(self.column != "Brown")
def operation(self):
return 'is Brown'
class MyModelView(BaseModelView): class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name')) column_filters = [
FilterLastNameBrown(
column=User.last_name, name='Last Name',
options=(('1', 'Yes'), ('0', 'No'))
)
]
""" """
model_form_converter = CustomModelConverter model_form_converter = CustomModelConverter
......
...@@ -29,13 +29,38 @@ class ModelView(BaseModelView): ...@@ -29,13 +29,38 @@ class ModelView(BaseModelView):
Collection of the column filters. Collection of the column filters.
Should contain instances of Should contain instances of
:class:`flask_admin.contrib.pymongo.filters.BasePyMongoFilter` :class:`flask_admin.contrib.pymongo.filters.BasePyMongoFilter` classes.
classes.
Filters will be grouped by name when displayed in the drop-down.
For example:: For example::
from flask_admin.contrib.pymongo.filters import BooleanEqualFilter
class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(column=User.name, name='Name'),)
or::
from flask_admin.contrib.pymongo.filters import BasePyMongoFilter
class FilterLastNameBrown(BasePyMongoFilter):
def apply(self, query, value):
if value == '1':
return query.filter(self.column == "Brown")
else:
return query.filter(self.column != "Brown")
def operation(self):
return 'is Brown'
class MyModelView(BaseModelView): class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name'),) column_filters = [
FilterLastNameBrown(
column=User.last_name, name='Last Name',
options=(('1', 'Yes'), ('0', 'No'))
)
]
""" """
def __init__(self, coll, def __init__(self, coll,
......
...@@ -117,7 +117,10 @@ class ModelView(BaseModelView): ...@@ -117,7 +117,10 @@ class ModelView(BaseModelView):
""" """
Collection of the column filters. Collection of the column filters.
Can contain either field names or instances of :class:`flask_admin.contrib.sqla.filters.BaseFilter` classes. Can contain either field names or instances of
:class:`flask_admin.contrib.sqla.filters.BaseSQLAFilter` classes.
Filters will be grouped by name when displayed in the drop-down.
For example:: For example::
...@@ -126,8 +129,31 @@ class ModelView(BaseModelView): ...@@ -126,8 +129,31 @@ class ModelView(BaseModelView):
or:: or::
from flask_admin.contrib.sqla.filters import BooleanEqualFilter
class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(column=User.name, name='Name'),)
or::
from flask_admin.contrib.sqla.filters import BaseSQLAFilter
class FilterLastNameBrown(BaseSQLAFilter):
def apply(self, query, value, alias=None):
if value == '1':
return query.filter(self.column == "Brown")
else:
return query.filter(self.column != "Brown")
def operation(self):
return 'is Brown'
class MyModelView(BaseModelView): class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name')) column_filters = [
FilterLastNameBrown(
User.last_name, 'Last Name', options=(('1', 'Yes'), ('0', 'No'))
)
]
""" """
model_form_converter = form.AdminModelConverter model_form_converter = form.AdminModelConverter
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment