Commit cc521944 authored by Yuri Shakalov's avatar Yuri Shakalov

Enabled use of BaseFilter instances on SQLA model views

parent f2698add
...@@ -17,7 +17,7 @@ from flask_admin.model.fields import ListEditableFieldList ...@@ -17,7 +17,7 @@ from flask_admin.model.fields import ListEditableFieldList
from flask_admin.actions import action from flask_admin.actions import action
from flask_admin._backwards import ObsoleteAttr from flask_admin._backwards import ObsoleteAttr
from flask_admin.contrib.sqla import form, filters, tools from flask_admin.contrib.sqla import form, filters as sqla_filters, tools
from .typefmt import DEFAULT_FORMATTERS from .typefmt import DEFAULT_FORMATTERS
from .tools import get_query_for_ids from .tools import get_query_for_ids
from .ajax import create_ajax_loader from .ajax import create_ajax_loader
...@@ -154,7 +154,7 @@ class ModelView(BaseModelView): ...@@ -154,7 +154,7 @@ class ModelView(BaseModelView):
inline_model_form_converter = MyInlineModelConverter inline_model_form_converter = MyInlineModelConverter
""" """
filter_converter = filters.FilterConverter() filter_converter = sqla_filters.FilterConverter()
""" """
Field to filter converter. Field to filter converter.
...@@ -576,17 +576,8 @@ class ModelView(BaseModelView): ...@@ -576,17 +576,8 @@ class ModelView(BaseModelView):
return flt return flt
def is_valid_filter(self, filter):
"""
Verify that the provided filter object is derived from the
SQLAlchemy-compatible filter class.
:param filter:
Filter object to verify.
"""
return isinstance(filter, filters.BaseSQLAFilter)
def handle_filter(self, filter): def handle_filter(self, filter):
if isinstance(filter, sqla_filters.BaseSQLAFilter):
column = filter.column column = filter.column
if self._need_join(column.table): if self._need_join(column.table):
...@@ -810,6 +801,7 @@ class ModelView(BaseModelView): ...@@ -810,6 +801,7 @@ class ModelView(BaseModelView):
flt = self._filters[idx] flt = self._filters[idx]
# Figure out joins # Figure out joins
if isinstance(flt, sqla_filters.BaseSQLAFilter):
tbl = flt.column.table.name tbl = flt.column.table.name
join_tables = self._filter_joins.get(tbl, []) join_tables = self._filter_joins.get(tbl, [])
......
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