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
8af30ade
Commit
8af30ade
authored
Nov 26, 2012
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added search functionality
parent
33cd4b94
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
1 deletion
+37
-1
simple.py
examples/pymongo/simple.py
+2
-0
view.py
flask_admin/contrib/pymongo/view.py
+35
-1
No files found.
examples/pymongo/simple.py
View file @
8af30ade
...
@@ -61,6 +61,8 @@ class TweetView(ModelView):
...
@@ -61,6 +61,8 @@ class TweetView(ModelView):
filters
.
FilterLike
(
'name'
,
'Name'
),
filters
.
FilterLike
(
'name'
,
'Name'
),
filters
.
FilterNotLike
(
'name'
,
'Name'
))
filters
.
FilterNotLike
(
'name'
,
'Name'
))
searchable_columns
=
(
'name'
,
'text'
)
form
=
TweetForm
form
=
TweetForm
def
get_list
(
self
,
*
args
,
**
kwargs
):
def
get_list
(
self
,
*
args
,
**
kwargs
):
...
...
flask_admin/contrib/pymongo/view.py
View file @
8af30ade
...
@@ -11,6 +11,7 @@ from flask.ext.admin.model import BaseModelView
...
@@ -11,6 +11,7 @@ from flask.ext.admin.model import BaseModelView
from
flask.ext.admin.actions
import
action
from
flask.ext.admin.actions
import
action
from
.filters
import
BasePyMongoFilter
from
.filters
import
BasePyMongoFilter
from
.tools
import
parse_like_term
class
ModelView
(
BaseModelView
):
class
ModelView
(
BaseModelView
):
...
@@ -175,7 +176,40 @@ class ModelView(BaseModelView):
...
@@ -175,7 +176,40 @@ class ModelView(BaseModelView):
else
:
else
:
query
[
'$AND'
]
=
data
query
[
'$AND'
]
=
data
# TODO: Search
# Search
if
self
.
_search_supported
and
search
:
values
=
search
.
split
(
' '
)
queries
=
[]
# Construct inner querie
for
value
in
values
:
if
not
value
:
continue
regex
=
parse_like_term
(
value
)
stmt
=
[]
for
field
in
self
.
_search_fields
:
stmt
.
append
({
field
:
{
'$regex'
:
regex
}})
if
stmt
:
if
len
(
stmt
)
==
1
:
queries
.
append
(
stmt
[
0
])
else
:
queries
.
append
({
'$or'
:
stmt
})
# Construct final query
if
queries
:
if
len
(
queries
)
==
1
:
final
=
queries
[
0
]
else
:
final
=
{
'$and'
:
queries
}
if
query
:
query
=
{
'$and'
:
[
query
,
final
]}
else
:
query
=
final
# Get count
# Get count
count
=
self
.
coll
.
find
(
query
)
.
count
()
count
=
self
.
coll
.
find
(
query
)
.
count
()
...
...
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