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
a00b716a
Commit
a00b716a
authored
Aug 22, 2015
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #981 from pawl/allow_overriding_pagesize
Allow overriding page_size in get_list
parents
691a1c98
28be9a00
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
67 additions
and
18 deletions
+67
-18
view.py
flask_admin/contrib/mongoengine/view.py
+12
-4
view.py
flask_admin/contrib/peewee/view.py
+29
-4
view.py
flask_admin/contrib/pymongo/view.py
+12
-5
view.py
flask_admin/contrib/sqla/view.py
+14
-5
No files found.
flask_admin/contrib/mongoengine/view.py
View file @
a00b716a
...
...
@@ -454,7 +454,7 @@ class ModelView(BaseModelView):
return
query
.
filter
(
criteria
)
def
get_list
(
self
,
page
,
sort_column
,
sort_desc
,
search
,
filters
,
execute
=
True
):
execute
=
True
,
page_size
=
None
):
"""
Get list of objects from MongoEngine
...
...
@@ -470,6 +470,10 @@ class ModelView(BaseModelView):
List of applied filters
:param execute:
Run query immediately or not
:param page_size:
Number of results. Defaults to ModelView's page_size. Can be
overriden to change the page_size limit. Removing the page_size
limit requires setting page_size to 0 or False.
"""
query
=
self
.
get_query
()
...
...
@@ -496,10 +500,14 @@ class ModelView(BaseModelView):
query
=
query
.
order_by
(
'
%
s
%
s'
%
(
'-'
if
order
[
1
]
else
''
,
order
[
0
]))
# Pagination
if
page
is
not
None
:
query
=
query
.
skip
(
page
*
self
.
page_size
)
if
page
_size
is
None
:
page_size
=
self
.
page_size
query
=
query
.
limit
(
self
.
page_size
)
if
page_size
:
query
=
query
.
limit
(
page_size
)
if
page
and
page_size
:
query
=
query
.
skip
(
page
*
page_size
)
if
execute
:
query
=
query
.
all
()
...
...
flask_admin/contrib/peewee/view.py
View file @
a00b716a
...
...
@@ -302,7 +302,28 @@ class ModelView(BaseModelView):
return
self
.
model
.
select
()
def
get_list
(
self
,
page
,
sort_column
,
sort_desc
,
search
,
filters
,
execute
=
True
):
execute
=
True
,
page_size
=
None
):
"""
Return records from the database.
:param page:
Page number
:param sort_column:
Sort column name
:param sort_desc:
Descending or ascending sort
:param search:
Search query
:param filters:
List of filter tuples
:param execute:
Execute query immediately? Default is `True`
:param page_size:
Number of results. Defaults to ModelView's page_size. Can be
overriden to change the page_size limit. Removing the page_size
limit requires setting page_size to 0 or False.
"""
query
=
self
.
get_query
()
joins
=
set
()
...
...
@@ -353,10 +374,14 @@ class ModelView(BaseModelView):
query
,
joins
=
self
.
_order_by
(
query
,
joins
,
order
[
0
],
order
[
1
])
# Pagination
if
page
is
not
None
:
query
=
query
.
offset
(
page
*
self
.
page_size
)
if
page_size
is
None
:
page_size
=
self
.
page_size
if
page_size
:
query
=
query
.
limit
(
page_size
)
query
=
query
.
limit
(
self
.
page_size
)
if
page
and
page_size
:
query
=
query
.
offset
(
page
*
page_size
)
if
execute
:
query
=
list
(
query
.
execute
())
...
...
flask_admin/contrib/pymongo/view.py
View file @
a00b716a
...
...
@@ -184,7 +184,7 @@ class ModelView(BaseModelView):
return
query
def
get_list
(
self
,
page
,
sort_column
,
sort_desc
,
search
,
filters
,
execute
=
True
):
execute
=
True
,
page_size
=
None
):
"""
Get list of objects from MongoEngine
...
...
@@ -200,6 +200,10 @@ class ModelView(BaseModelView):
List of applied fiters
:param execute:
Run query immediately or not
:param page_size:
Number of results. Defaults to ModelView's page_size. Can be
overriden to change the page_size limit. Removing the page_size
limit requires setting page_size to 0 or False.
"""
query
=
{}
...
...
@@ -236,12 +240,15 @@ class ModelView(BaseModelView):
sort_by
=
[(
order
[
0
],
pymongo
.
DESCENDING
if
order
[
1
]
else
pymongo
.
ASCENDING
)]
# Pagination
skip
=
None
if
page_size
is
None
:
page_size
=
self
.
page_size
if
page
is
not
None
:
skip
=
page
*
self
.
page_size
skip
=
0
results
=
self
.
coll
.
find
(
query
,
sort
=
sort_by
,
skip
=
skip
,
limit
=
self
.
page_size
)
if
page
and
page_size
:
skip
=
page
*
page_size
results
=
self
.
coll
.
find
(
query
,
sort
=
sort_by
,
skip
=
skip
,
limit
=
page_size
)
if
execute
:
results
=
list
(
results
)
...
...
flask_admin/contrib/sqla/view.py
View file @
a00b716a
...
...
@@ -884,9 +884,10 @@ class ModelView(BaseModelView):
return
query
,
count_query
,
joins
,
count_joins
def
get_list
(
self
,
page
,
sort_column
,
sort_desc
,
search
,
filters
,
execute
=
True
):
def
get_list
(
self
,
page
,
sort_column
,
sort_desc
,
search
,
filters
,
execute
=
True
,
page_size
=
None
):
"""
Return
model
s from the database.
Return
record
s from the database.
:param page:
Page number
...
...
@@ -900,6 +901,10 @@ class ModelView(BaseModelView):
Execute query immediately? Default is `True`
:param filters:
List of filter tuples
:param page_size:
Number of results. Defaults to ModelView's page_size. Can be
overriden to change the page_size limit. Removing the page_size
limit requires setting page_size to 0 or False.
"""
# Will contain join paths with optional aliased object
...
...
@@ -943,10 +948,14 @@ class ModelView(BaseModelView):
query
,
joins
=
self
.
_apply_sorting
(
query
,
joins
,
sort_column
,
sort_desc
)
# Pagination
if
page
is
not
None
:
query
=
query
.
offset
(
page
*
self
.
page_size
)
if
page
_size
is
None
:
page_size
=
self
.
page_size
query
=
query
.
limit
(
self
.
page_size
)
if
page_size
:
query
=
query
.
limit
(
page_size
)
if
page
and
page_size
:
query
=
query
.
offset
(
page
*
page_size
)
# Execute if needed
if
execute
:
...
...
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