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
e7c540cf
Commit
e7c540cf
authored
Oct 27, 2018
by
PJ Janse van Rensburg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Avoid empty-string errors on Currency field.
parent
ceb45b46
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
9 deletions
+19
-9
filters.py
flask_admin/contrib/sqla/filters.py
+5
-9
form.py
flask_admin/contrib/sqla/form.py
+14
-0
No files found.
flask_admin/contrib/sqla/filters.py
View file @
e7c540cf
...
...
@@ -440,8 +440,7 @@ class ChoiceTypeNotLikeFilter(FilterNotLike):
class
FilterConverter
(
filters
.
BaseFilterConverter
):
strings
=
(
FilterLike
,
FilterNotLike
,
FilterEqual
,
FilterNotEqual
,
FilterEmpty
,
FilterInList
,
FilterNotInList
)
string_key_filters
=
(
FilterEqual
,
FilterNotEqual
,
FilterEmpty
,
FilterInList
,
FilterNotInList
)
string_key_filters
=
(
FilterEqual
,
FilterNotEqual
,
FilterEmpty
,
FilterInList
,
FilterNotInList
)
int_filters
=
(
IntEqualFilter
,
IntNotEqualFilter
,
IntGreaterFilter
,
IntSmallerFilter
,
FilterEmpty
,
IntInListFilter
,
IntNotInListFilter
)
...
...
@@ -458,14 +457,11 @@ class FilterConverter(filters.BaseFilterConverter):
DateTimeGreaterFilter
,
DateTimeSmallerFilter
,
DateTimeBetweenFilter
,
DateTimeNotBetweenFilter
,
FilterEmpty
)
time_filters
=
(
TimeEqualFilter
,
TimeNotEqualFilter
,
TimeGreaterFilter
,
TimeSmallerFilter
,
TimeBetweenFilter
,
TimeNotBetweenFilter
,
FilterEmpty
)
time_filters
=
(
TimeEqualFilter
,
TimeNotEqualFilter
,
TimeGreaterFilter
,
TimeSmallerFilter
,
TimeBetweenFilter
,
TimeNotBetweenFilter
,
FilterEmpty
)
choice_type_filters
=
(
ChoiceTypeEqualFilter
,
ChoiceTypeNotEqualFilter
,
ChoiceTypeLikeFilter
,
ChoiceTypeNotLikeFilter
,
FilterEmpty
)
arrow_type_filters
=
(
DateTimeGreaterFilter
,
DateTimeSmallerFilter
,
FilterEmpty
)
ChoiceTypeLikeFilter
,
ChoiceTypeNotLikeFilter
,
FilterEmpty
)
arrow_type_filters
=
(
DateTimeGreaterFilter
,
DateTimeSmallerFilter
,
FilterEmpty
)
def
convert
(
self
,
type_name
,
column
,
name
,
**
kwargs
):
filter_name
=
type_name
.
lower
()
...
...
flask_admin/contrib/sqla/form.py
View file @
e7c540cf
...
...
@@ -367,6 +367,7 @@ class AdminModelConverter(ModelConverterBase):
@
converts
(
'sqlalchemy_utils.types.currency.CurrencyType'
)
def
convert_currency
(
self
,
field_args
,
**
extra
):
field_args
[
'validators'
]
.
append
(
valid_currency
)
field_args
[
'filters'
]
=
[
avoid_empty_strings
]
# don't accept empty strings, or whitespace
return
fields
.
StringField
(
**
field_args
)
@
converts
(
'sqlalchemy_utils.types.timezone.TimezoneType'
)
...
...
@@ -422,6 +423,19 @@ class AdminModelConverter(ModelConverterBase):
return
form
.
JSONField
(
**
field_args
)
def
avoid_empty_strings
(
value
):
"""
Return None if the incoming value is an empty string or whitespace.
"""
if
value
:
try
:
value
=
value
.
strip
()
except
AttributeError
:
# values are not always strings
pass
return
value
if
value
else
None
def
choice_type_coerce_factory
(
type_
):
"""
Return a function to coerce a ChoiceType column, for use by Select2Field.
...
...
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