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
f8df32dd
Commit
f8df32dd
authored
Feb 05, 2019
by
Zaytsev Dmitriy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
uuid filter implementation
parent
7fa26ab2
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
46 additions
and
0 deletions
+46
-0
filters.py
flask_admin/contrib/sqla/filters.py
+22
-0
filters.py
flask_admin/model/filters.py
+24
-0
No files found.
flask_admin/contrib/sqla/filters.py
View file @
f8df32dd
...
...
@@ -339,6 +339,22 @@ class EnumFilterNotInList(FilterNotInList):
return
values
class
UuidFilterEqual
(
FilterEqual
,
filters
.
BaseUuidFilter
):
pass
class
UuidFilterNotEqual
(
FilterNotEqual
,
filters
.
BaseUuidFilter
):
pass
class
UuidFilterInList
(
filters
.
BaseUuidListFilter
,
FilterInList
):
pass
class
UuidFilterNotInList
(
filters
.
BaseUuidListFilter
,
FilterNotInList
):
pass
# Base SQLA filter field converter
class
FilterConverter
(
filters
.
BaseFilterConverter
):
strings
=
(
FilterLike
,
FilterNotLike
,
FilterEqual
,
FilterNotEqual
,
...
...
@@ -362,6 +378,8 @@ class FilterConverter(filters.BaseFilterConverter):
time_filters
=
(
TimeEqualFilter
,
TimeNotEqualFilter
,
TimeGreaterFilter
,
TimeSmallerFilter
,
TimeBetweenFilter
,
TimeNotBetweenFilter
,
FilterEmpty
)
uuid_filters
=
(
UuidFilterEqual
,
UuidFilterNotEqual
,
FilterEmpty
,
UuidFilterInList
,
UuidFilterNotInList
)
def
convert
(
self
,
type_name
,
column
,
name
,
**
kwargs
):
filter_name
=
type_name
.
lower
()
...
...
@@ -418,3 +436,7 @@ class FilterConverter(filters.BaseFilterConverter):
kwargs
[
'enum_class'
]
=
column
.
type
.
_enum_class
return
[
f
(
column
,
name
,
options
,
**
kwargs
)
for
f
in
self
.
enum
]
@
filters
.
convert
(
'uuid'
)
def
conv_uuid
(
self
,
column
,
name
,
**
kwargs
):
return
[
f
(
column
,
name
,
**
kwargs
)
for
f
in
self
.
uuid_filters
]
flask_admin/model/filters.py
View file @
f8df32dd
import
time
import
datetime
import
uuid
from
flask_admin.babel
import
lazy_gettext
...
...
@@ -269,6 +270,29 @@ class BaseTimeBetweenFilter(BaseFilter):
return
False
class
BaseUuidFilter
(
BaseFilter
):
"""
Base uuid filter
"""
def
__init__
(
self
,
name
,
options
=
None
,
data_type
=
None
):
super
(
BaseUuidFilter
,
self
)
.
__init__
(
name
,
options
,
data_type
=
'uuid'
)
def
clean
(
self
,
value
):
value
=
uuid
.
UUID
(
value
)
return
str
(
value
)
class
BaseUuidListFilter
(
BaseFilter
):
"""
Base uuid list filter
"""
def
clean
(
self
,
value
):
return
[
str
(
uuid
.
UUID
(
v
.
strip
()))
for
v
in
value
.
split
(
','
)
if
v
.
strip
()]
def
convert
(
*
args
):
"""
Decorator for field to filter conversion routine.
...
...
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