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
3bf7e239
Commit
3bf7e239
authored
Mar 06, 2014
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Minor cleanup
parent
d851c420
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
41 deletions
+20
-41
base.py
flask_admin/model/base.py
+9
-30
test_basic.py
flask_admin/tests/sqlamodel/test_basic.py
+9
-9
test_model.py
flask_admin/tests/test_model.py
+2
-2
No files found.
flask_admin/model/base.py
View file @
3bf7e239
...
@@ -567,13 +567,17 @@ class BaseModelView(BaseView, ActionsMixin):
...
@@ -567,13 +567,17 @@ class BaseModelView(BaseView, ActionsMixin):
if
flt
.
name
not
in
self
.
_filter_groups
:
if
flt
.
name
not
in
self
.
_filter_groups
:
self
.
_filter_groups
[
flt
.
name
]
=
[]
self
.
_filter_groups
[
flt
.
name
]
=
[]
self
.
_filter_groups
[
flt
.
name
]
.
append
((
i
,
flt
))
self
.
_filter_groups
[
flt
.
name
]
.
append
({
self
.
_filter_args
[
self
.
get_filter_arg
(
i
,
flt
)]
=
(
i
,
flt
)
'index'
:
i
,
'arg'
:
self
.
get_filter_arg
(
i
,
flt
),
'operation'
:
flt
.
operation
(),
'options'
:
flt
.
get_options
(
self
)
or
None
,
'type'
:
flt
.
data_type
})
self
.
_filter_data
=
self
.
_serialize_filter_args
(
)
self
.
_filter_args
[
self
.
get_filter_arg
(
i
,
flt
)]
=
(
i
,
flt
)
else
:
else
:
self
.
_filter_groups
=
None
self
.
_filter_groups
=
None
self
.
_filter_data
=
None
self
.
_filter_args
=
None
self
.
_filter_args
=
None
# Form rendering rules
# Form rendering rules
...
@@ -748,31 +752,6 @@ class BaseModelView(BaseView, ActionsMixin):
...
@@ -748,31 +752,6 @@ class BaseModelView(BaseView, ActionsMixin):
else
:
else
:
return
str
(
index
)
return
str
(
index
)
def
_serialize_filter_args
(
self
):
"""
Convert filter information into JSON-serializable object.
"""
if
self
.
_filters
:
result
=
{}
for
name
,
group
in
iteritems
(
self
.
_filter_groups
):
data
=
[]
for
idx
,
flt
in
group
:
data
.
append
({
'index'
:
idx
,
'arg'
:
self
.
get_filter_arg
(
idx
,
flt
),
'operation'
:
flt
.
operation
(),
'options'
:
flt
.
get_options
(
self
)
or
None
,
'type'
:
flt
.
data_type
})
result
[
name
]
=
data
return
result
return
self
.
_filters
# Form helpers
# Form helpers
def
scaffold_form
(
self
):
def
scaffold_form
(
self
):
"""
"""
...
@@ -1228,7 +1207,7 @@ class BaseModelView(BaseView, ActionsMixin):
...
@@ -1228,7 +1207,7 @@ class BaseModelView(BaseView, ActionsMixin):
search
=
search
,
search
=
search
,
# Filters
# Filters
filters
=
self
.
_filters
,
filters
=
self
.
_filters
,
filter_groups
=
self
.
_filter_
data
,
filter_groups
=
self
.
_filter_
groups
,
active_filters
=
filters
,
active_filters
=
filters
,
# Actions
# Actions
...
...
flask_admin/tests/sqlamodel/test_basic.py
View file @
3bf7e239
...
@@ -233,7 +233,7 @@ def test_column_filters():
...
@@ -233,7 +233,7 @@ def test_column_filters():
eq_
(
len
(
view
.
_filters
),
4
)
eq_
(
len
(
view
.
_filters
),
4
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Test1'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Test1'
]],
[
[
(
0
,
u'equals'
),
(
0
,
u'equals'
),
(
1
,
u'not equal'
),
(
1
,
u'not equal'
),
...
@@ -245,7 +245,7 @@ def test_column_filters():
...
@@ -245,7 +245,7 @@ def test_column_filters():
view
=
CustomModelView
(
Model2
,
db
.
session
,
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
'model1'
])
column_filters
=
[
'model1'
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Test1'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Test1'
]],
[
[
(
0
,
u'equals'
),
(
0
,
u'equals'
),
(
1
,
u'not equal'
),
(
1
,
u'not equal'
),
...
@@ -253,7 +253,7 @@ def test_column_filters():
...
@@ -253,7 +253,7 @@ def test_column_filters():
(
3
,
u'not contains'
)
(
3
,
u'not contains'
)
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Test2'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Test2'
]],
[
[
(
4
,
'equals'
),
(
4
,
'equals'
),
(
5
,
'not equal'
),
(
5
,
'not equal'
),
...
@@ -261,7 +261,7 @@ def test_column_filters():
...
@@ -261,7 +261,7 @@ def test_column_filters():
(
7
,
'not contains'
)
(
7
,
'not contains'
)
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Test3'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Test3'
]],
[
[
(
8
,
u'equals'
),
(
8
,
u'equals'
),
(
9
,
u'not equal'
),
(
9
,
u'not equal'
),
...
@@ -269,7 +269,7 @@ def test_column_filters():
...
@@ -269,7 +269,7 @@ def test_column_filters():
(
11
,
u'not contains'
)
(
11
,
u'not contains'
)
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Test4'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Test4'
]],
[
[
(
12
,
u'equals'
),
(
12
,
u'equals'
),
(
13
,
u'not equal'
),
(
13
,
u'not equal'
),
...
@@ -277,13 +277,13 @@ def test_column_filters():
...
@@ -277,13 +277,13 @@ def test_column_filters():
(
15
,
u'not contains'
)
(
15
,
u'not contains'
)
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Bool Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Bool Field'
]],
[
[
(
16
,
u'equals'
),
(
16
,
u'equals'
),
(
17
,
u'not equal'
),
(
17
,
u'not equal'
),
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Enum Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Enum Field'
]],
[
[
(
18
,
u'equals'
),
(
18
,
u'equals'
),
(
19
,
u'not equal'
),
(
19
,
u'not equal'
),
...
@@ -293,7 +293,7 @@ def test_column_filters():
...
@@ -293,7 +293,7 @@ def test_column_filters():
view
=
CustomModelView
(
Model2
,
db
.
session
,
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
'model1.bool_field'
])
column_filters
=
[
'model1.bool_field'
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Model1 / Bool Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Model1 / Bool Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
(
1
,
'not equal'
),
(
1
,
'not equal'
),
...
@@ -334,7 +334,7 @@ def test_column_filters():
...
@@ -334,7 +334,7 @@ def test_column_filters():
column_filters
=
[
'int_field'
])
column_filters
=
[
'int_field'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'Int Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'Int Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
(
1
,
'not equal'
),
(
1
,
'not equal'
),
...
...
flask_admin/tests/test_model.py
View file @
3bf7e239
...
@@ -302,8 +302,8 @@ def test_column_filters():
...
@@ -302,8 +302,8 @@ def test_column_filters():
eq_
(
view
.
_filters
[
0
]
.
name
,
'col1'
)
eq_
(
view
.
_filters
[
0
]
.
name
,
'col1'
)
eq_
(
view
.
_filters
[
1
]
.
name
,
'col2'
)
eq_
(
view
.
_filters
[
1
]
.
name
,
'col2'
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'col1'
]],
[(
0
,
'test'
)])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'col1'
]],
[(
0
,
'test'
)])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
data
[
u'col2'
]],
[(
1
,
'test'
)])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_
groups
[
u'col2'
]],
[(
1
,
'test'
)])
# TODO: Make calls with filters
# TODO: Make calls with filters
...
...
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