Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
591f7b46
Commit
591f7b46
authored
Mar 19, 2015
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #819 from silme-ea/sqla-filters-scaffold-bug
Enabled use of BaseFilter instances on SQLA model views
parents
f2698add
cc521944
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
22 deletions
+14
-22
view.py
flask_admin/contrib/sqla/view.py
+14
-22
No files found.
flask_admin/contrib/sqla/view.py
View file @
591f7b46
...
@@ -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,21 +576,12 @@ class ModelView(BaseModelView):
...
@@ -576,21 +576,12 @@ 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
):
column
=
filter
.
column
if
isinstance
(
filter
,
sqla_filters
.
BaseSQLAFilter
):
column
=
filter
.
column
if
self
.
_need_join
(
column
.
table
):
if
self
.
_need_join
(
column
.
table
):
self
.
_filter_joins
[
column
.
table
.
name
]
=
[
column
.
table
]
self
.
_filter_joins
[
column
.
table
.
name
]
=
[
column
.
table
]
return
filter
return
filter
...
@@ -810,15 +801,16 @@ class ModelView(BaseModelView):
...
@@ -810,15 +801,16 @@ class ModelView(BaseModelView):
flt
=
self
.
_filters
[
idx
]
flt
=
self
.
_filters
[
idx
]
# Figure out joins
# Figure out joins
tbl
=
flt
.
column
.
table
.
name
if
isinstance
(
flt
,
sqla_filters
.
BaseSQLAFilter
):
tbl
=
flt
.
column
.
table
.
name
join_tables
=
self
.
_filter_joins
.
get
(
tbl
,
[])
join_tables
=
self
.
_filter_joins
.
get
(
tbl
,
[])
for
table
in
join_tables
:
for
table
in
join_tables
:
if
table
.
name
not
in
joins
:
if
table
.
name
not
in
joins
:
query
=
query
.
join
(
table
)
query
=
query
.
join
(
table
)
count_query
=
count_query
.
join
(
table
)
count_query
=
count_query
.
join
(
table
)
joins
.
add
(
table
.
name
)
joins
.
add
(
table
.
name
)
# turn into python format with .clean() and apply filter
# turn into python format with .clean() and apply filter
query
=
flt
.
apply
(
query
,
flt
.
clean
(
value
))
query
=
flt
.
apply
(
query
,
flt
.
clean
(
value
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment