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
ef8e9e52
Commit
ef8e9e52
authored
Mar 13, 2019
by
Nathan Steyer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix mongoengine model converter
parent
0c4d2c9f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
3 deletions
+25
-3
form.py
flask_admin/contrib/mongoengine/form.py
+5
-1
validators.py
flask_admin/form/validators.py
+16
-0
helpers.py
flask_admin/helpers.py
+4
-2
No files found.
flask_admin/contrib/mongoengine/form.py
View file @
ef8e9e52
...
...
@@ -7,6 +7,7 @@ from flask_mongoengine.wtf import orm, fields as mongo_fields
from
flask_admin
import
form
from
flask_admin.model.form
import
FieldPlaceholder
from
flask_admin.model.fields
import
InlineFieldList
,
AjaxSelectField
,
AjaxSelectMultipleField
from
flask_admin.form.validators
import
FieldListInputRequired
from
flask_admin._compat
import
iteritems
from
.fields
import
ModelFormField
,
MongoFileField
,
MongoImageField
...
...
@@ -74,7 +75,10 @@ class CustomModelConverter(orm.ModelConverter):
kwargs
[
'validators'
]
=
list
(
kwargs
[
'validators'
])
if
field
.
required
:
kwargs
[
'validators'
]
.
append
(
validators
.
InputRequired
())
if
isinstance
(
field
,
ListField
):
kwargs
[
'validators'
]
.
append
(
FieldListInputRequired
())
else
:
kwargs
[
'validators'
]
.
append
(
validators
.
InputRequired
())
elif
not
isinstance
(
field
,
ListField
):
kwargs
[
'validators'
]
.
append
(
validators
.
Optional
())
...
...
flask_admin/form/validators.py
0 → 100644
View file @
ef8e9e52
from
flask_admin.babel
import
gettext
from
wtforms.validators
import
StopValidation
class
FieldListInputRequired
(
object
):
"""
Validates that at least one item was provided for a FieldList
"""
field_flags
=
(
'required'
,)
def
__call__
(
self
,
form
,
field
):
if
len
(
field
.
entries
)
==
0
:
field
.
errors
[:]
=
[]
raise
StopValidation
(
gettext
(
'This field requires at least one item.'
))
flask_admin/helpers.py
View file @
ef8e9e52
...
...
@@ -45,13 +45,15 @@ def get_url(endpoint, **kwargs):
def
is_required_form_field
(
field
):
"""
Check if form field has `DataRequired` or `InputRequired` validators.
Check if form field has `DataRequired`, `InputRequired`, or
`FieldListInputRequired` validators.
:param field:
WTForms field to check
"""
from
flask_admin.form.validators
import
FieldListInputRequired
for
validator
in
field
.
validators
:
if
isinstance
(
validator
,
(
DataRequired
,
InputRequired
)):
if
isinstance
(
validator
,
(
DataRequired
,
InputRequired
,
FieldListInputRequired
)):
return
True
return
False
...
...
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