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
c7a57c02
Commit
c7a57c02
authored
Nov 08, 2014
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #676 from arsgeografica/wtf2
WTForms 2 compatibility
parents
beb637fa
f836bf46
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
45 additions
and
47 deletions
+45
-47
.gitignore
.gitignore
+2
-0
fileadmin.py
flask_admin/contrib/fileadmin.py
+1
-1
form.py
flask_admin/contrib/peewee/form.py
+4
-1
form.py
flask_admin/contrib/sqla/form.py
+5
-5
view.py
flask_admin/contrib/sqla/view.py
+1
-1
fields.py
flask_admin/form/fields.py
+3
-3
upload.py
flask_admin/form/upload.py
+2
-2
base.py
flask_admin/model/base.py
+1
-1
fields.py
flask_admin/model/fields.py
+6
-7
form.py
flask_admin/model/form.py
+1
-1
test_basic.py
flask_admin/tests/mongoengine/test_basic.py
+4
-10
test_basic.py
flask_admin/tests/peeweemodel/test_basic.py
+3
-3
test_basic.py
flask_admin/tests/pymongo/test_basic.py
+2
-2
test_basic.py
flask_admin/tests/sqlamodel/test_basic.py
+5
-5
test_inlineform.py
flask_admin/tests/sqlamodel/test_inlineform.py
+1
-1
test_model.py
flask_admin/tests/test_model.py
+3
-3
setup.py
setup.py
+1
-1
No files found.
.gitignore
View file @
c7a57c02
...
...
@@ -23,3 +23,5 @@ examples/forms/files
.idea/
*.sqlite
env
*.egg
.eggs
flask_admin/contrib/fileadmin.py
View file @
c7a57c02
...
...
@@ -24,7 +24,7 @@ class NameForm(form.BaseForm):
Validates if provided name is valid for *nix and Windows systems.
"""
name
=
fields
.
Text
Field
()
name
=
fields
.
String
Field
()
regexp
=
re
.
compile
(
r'^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'
)
...
...
flask_admin/contrib/peewee/form.py
View file @
c7a57c02
from
wtforms
import
fields
from
peewee
import
(
DateTimeField
,
DateField
,
TimeField
,
from
peewee
import
(
CharField
,
DateTimeField
,
DateField
,
TimeField
,
PrimaryKeyField
,
ForeignKeyField
,
BaseModel
)
from
wtfpeewee.orm
import
ModelConverter
,
model_form
...
...
@@ -85,6 +85,9 @@ class CustomModelConverter(ModelConverter):
super
(
CustomModelConverter
,
self
)
.
__init__
(
additional
)
self
.
view
=
view
# @todo: This really should be done within wtfpeewee
self
.
defaults
[
CharField
]
=
fields
.
StringField
self
.
converters
[
PrimaryKeyField
]
=
self
.
handle_pk
self
.
converters
[
DateTimeField
]
=
self
.
handle_datetime
self
.
converters
[
DateField
]
=
self
.
handle_date
...
...
flask_admin/contrib/sqla/form.py
View file @
c7a57c02
...
...
@@ -274,7 +274,7 @@ class AdminModelConverter(ModelConverterBase):
field_args
[
'filters'
]
=
filters
self
.
_string_common
(
column
=
column
,
field_args
=
field_args
,
**
extra
)
return
fields
.
Text
Field
(
**
field_args
)
return
fields
.
String
Field
(
**
field_args
)
@
converts
(
'Text'
,
'UnicodeText'
,
'sqlalchemy.types.LargeBinary'
,
'sqlalchemy.types.Binary'
)
...
...
@@ -316,25 +316,25 @@ class AdminModelConverter(ModelConverterBase):
@
converts
(
'databases.mysql.MSYear'
)
def
conv_MSYear
(
self
,
field_args
,
**
extra
):
field_args
[
'validators'
]
.
append
(
validators
.
NumberRange
(
min
=
1901
,
max
=
2155
))
return
fields
.
Text
Field
(
**
field_args
)
return
fields
.
String
Field
(
**
field_args
)
@
converts
(
'databases.postgres.PGInet'
,
'dialects.postgresql.base.INET'
)
def
conv_PGInet
(
self
,
field_args
,
**
extra
):
field_args
.
setdefault
(
'label'
,
u'IP Address'
)
field_args
[
'validators'
]
.
append
(
validators
.
IPAddress
())
return
fields
.
Text
Field
(
**
field_args
)
return
fields
.
String
Field
(
**
field_args
)
@
converts
(
'dialects.postgresql.base.MACADDR'
)
def
conv_PGMacaddr
(
self
,
field_args
,
**
extra
):
field_args
.
setdefault
(
'label'
,
u'MAC Address'
)
field_args
[
'validators'
]
.
append
(
validators
.
MacAddress
())
return
fields
.
Text
Field
(
**
field_args
)
return
fields
.
String
Field
(
**
field_args
)
@
converts
(
'dialects.postgresql.base.UUID'
)
def
conv_PGUuid
(
self
,
field_args
,
**
extra
):
field_args
.
setdefault
(
'label'
,
u'UUID'
)
field_args
[
'validators'
]
.
append
(
validators
.
UUID
())
return
fields
.
Text
Field
(
**
field_args
)
return
fields
.
String
Field
(
**
field_args
)
@
converts
(
'sqlalchemy.dialects.postgresql.base.ARRAY'
)
def
conv_ARRAY
(
self
,
field_args
,
**
extra
):
...
...
flask_admin/contrib/sqla/view.py
View file @
c7a57c02
...
...
@@ -146,7 +146,7 @@ class ModelView(BaseModelView):
class MyInlineModelConverter(AdminModelConverter):
def post_process(self, form_class, info):
form_class.value = wtf.
Text
Field('value')
form_class.value = wtf.
String
Field('value')
return form_class
class MyAdminView(ModelView):
...
...
flask_admin/form/fields.py
View file @
c7a57c02
...
...
@@ -32,9 +32,9 @@ class DateTimeField(fields.DateTimeField):
Any additional parameters
"""
super
(
DateTimeField
,
self
)
.
__init__
(
label
,
validators
,
**
kwargs
)
self
.
format
=
format
or
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
class
TimeField
(
fields
.
Field
):
"""
A text field which stores a `datetime.time` object.
...
...
@@ -139,7 +139,7 @@ class Select2Field(fields.SelectField):
super
(
Select2Field
,
self
)
.
pre_validate
(
form
)
class
Select2TagsField
(
fields
.
Text
Field
):
class
Select2TagsField
(
fields
.
String
Field
):
"""`Select2 <http://ivaynberg.github.com/select2/#tags>`_ styled text field.
You must include select2.js, form.js and select2 stylesheet for it to work.
"""
...
...
flask_admin/form/upload.py
View file @
c7a57c02
...
...
@@ -109,11 +109,11 @@ class ImageUploadInput(object):
# Fields
class
FileUploadField
(
fields
.
Text
Field
):
class
FileUploadField
(
fields
.
String
Field
):
"""
Customizable file-upload field.
Saves file to configured path, handles updates and deletions. Inherits from `
Text
Field`,
Saves file to configured path, handles updates and deletions. Inherits from `
String
Field`,
resulting filename will be stored as string.
"""
widget
=
FileUploadInput
()
...
...
flask_admin/model/base.py
View file @
c7a57c02
...
...
@@ -314,7 +314,7 @@ class BaseModelView(BaseView, ActionsMixin):
For example::
class MyForm(Form):
name =
Text
Field('Name')
name =
String
Field('Name')
class MyModelView(BaseModelView):
form = MyForm
...
...
flask_admin/model/fields.py
View file @
c7a57c02
...
...
@@ -13,18 +13,17 @@ class InlineFieldList(FieldList):
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
InlineFieldList
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
def
__call__
(
self
,
**
kwargs
):
# Create template
self
.
template
=
self
.
unbound_field
.
bind
(
form
=
None
,
name
=
''
)
template
=
self
.
unbound_field
.
bind
(
form
=
None
,
name
=
''
)
# Small hack to remove separator from FormField
if
isinstance
(
self
.
template
,
FormField
):
self
.
template
.
separator
=
''
if
isinstance
(
template
,
FormField
):
template
.
separator
=
''
self
.
template
.
process
(
None
)
template
.
process
(
None
)
def
__call__
(
self
,
**
kwargs
):
return
self
.
widget
(
self
,
template
=
self
.
template
,
template
=
template
,
check
=
self
.
display_row_controls
,
**
kwargs
)
...
...
flask_admin/model/form.py
View file @
c7a57c02
...
...
@@ -60,7 +60,7 @@ class InlineBaseFormAdmin(object):
class MyInlineForm(InlineFormAdmin):
def postprocess_form(self, form):
form.value =
Text
Field('value')
form.value =
String
Field('value')
return form
class MyAdmin(ModelView):
...
...
flask_admin/tests/mongoengine/test_basic.py
View file @
c7a57c02
...
...
@@ -67,14 +67,8 @@ def test_model():
eq_
(
view
.
_search_supported
,
False
)
eq_
(
view
.
_filters
,
None
)
# Verify form
# TODO: Figure out why there's inconsistency
try
:
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
TextField
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
TextField
)
except
AssertionError
:
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
StringField
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
StringField
)
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
StringField
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
StringField
)
eq_
(
view
.
_create_form_class
.
test3
.
field_class
,
fields
.
TextAreaField
)
eq_
(
view
.
_create_form_class
.
test4
.
field_class
,
fields
.
TextAreaField
)
...
...
@@ -150,7 +144,7 @@ def test_extra_fields():
view
=
CustomModelView
(
Model1
,
form_extra_fields
=
{
'extra_field'
:
fields
.
Text
Field
(
'Extra Field'
)
'extra_field'
:
fields
.
String
Field
(
'Extra Field'
)
}
)
admin
.
add_view
(
view
)
...
...
@@ -177,7 +171,7 @@ def test_extra_field_order():
Model1
,
form_columns
=
(
'extra_field'
,
'test1'
),
form_extra_fields
=
{
'extra_field'
:
fields
.
Text
Field
(
'Extra Field'
)
'extra_field'
:
fields
.
String
Field
(
'Extra Field'
)
}
)
admin
.
add_view
(
view
)
...
...
flask_admin/tests/peeweemodel/test_basic.py
View file @
c7a57c02
...
...
@@ -82,8 +82,8 @@ def test_model():
eq_
(
view
.
_filters
,
None
)
# Verify form
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
Text
Field
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
Text
Field
)
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
String
Field
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
String
Field
)
eq_
(
view
.
_create_form_class
.
test3
.
field_class
,
fields
.
TextAreaField
)
eq_
(
view
.
_create_form_class
.
test4
.
field_class
,
fields
.
TextAreaField
)
...
...
@@ -158,7 +158,7 @@ def test_extra_fields():
view
=
CustomModelView
(
Model1
,
form_extra_fields
=
{
'extra_field'
:
fields
.
Text
Field
(
'Extra Field'
)
'extra_field'
:
fields
.
String
Field
(
'Extra Field'
)
}
)
admin
.
add_view
(
view
)
...
...
flask_admin/tests/pymongo/test_basic.py
View file @
c7a57c02
...
...
@@ -8,8 +8,8 @@ from . import setup
class
TestForm
(
form
.
Form
):
test1
=
fields
.
Text
Field
(
'Test1'
)
test2
=
fields
.
Text
Field
(
'Test2'
)
test1
=
fields
.
String
Field
(
'Test1'
)
test2
=
fields
.
String
Field
(
'Test2'
)
class
TestView
(
ModelView
):
...
...
flask_admin/tests/sqlamodel/test_basic.py
View file @
c7a57c02
...
...
@@ -91,8 +91,8 @@ def test_model():
eq_
(
view
.
_filters
,
None
)
# Verify form
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
Text
Field
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
Text
Field
)
eq_
(
view
.
_create_form_class
.
test1
.
field_class
,
fields
.
String
Field
)
eq_
(
view
.
_create_form_class
.
test2
.
field_class
,
fields
.
String
Field
)
eq_
(
view
.
_create_form_class
.
test3
.
field_class
,
fields
.
TextAreaField
)
eq_
(
view
.
_create_form_class
.
test4
.
field_class
,
fields
.
TextAreaField
)
...
...
@@ -567,7 +567,7 @@ def test_form_override():
admin
.
add_view
(
view1
)
admin
.
add_view
(
view2
)
eq_
(
view1
.
_create_form_class
.
test
.
field_class
,
fields
.
Text
Field
)
eq_
(
view1
.
_create_form_class
.
test
.
field_class
,
fields
.
String
Field
)
eq_
(
view2
.
_create_form_class
.
test
.
field_class
,
fields
.
FileField
)
...
...
@@ -711,7 +711,7 @@ def test_extra_fields():
view
=
CustomModelView
(
Model1
,
db
.
session
,
form_extra_fields
=
{
'extra_field'
:
fields
.
Text
Field
(
'Extra Field'
)
'extra_field'
:
fields
.
String
Field
(
'Extra Field'
)
}
)
admin
.
add_view
(
view
)
...
...
@@ -738,7 +738,7 @@ def test_extra_field_order():
Model1
,
db
.
session
,
form_columns
=
(
'extra_field'
,
'test1'
),
form_extra_fields
=
{
'extra_field'
:
fields
.
Text
Field
(
'Extra Field'
)
'extra_field'
:
fields
.
String
Field
(
'Extra Field'
)
}
)
admin
.
add_view
(
view
)
...
...
flask_admin/tests/sqlamodel/test_inlineform.py
View file @
c7a57c02
...
...
@@ -45,7 +45,7 @@ def test_inline_form():
eq_
(
view
.
endpoint
,
'user'
)
# Verify form
eq_
(
view
.
_create_form_class
.
name
.
field_class
,
fields
.
Text
Field
)
eq_
(
view
.
_create_form_class
.
name
.
field_class
,
fields
.
String
Field
)
eq_
(
view
.
_create_form_class
.
info
.
field_class
,
InlineModelFormList
)
rv
=
client
.
get
(
'/admin/user/'
)
...
...
flask_admin/tests/test_model.py
View file @
c7a57c02
...
...
@@ -21,9 +21,9 @@ class Model(object):
class
Form
(
form
.
BaseForm
):
col1
=
fields
.
Text
Field
()
col2
=
fields
.
Text
Field
()
col3
=
fields
.
Text
Field
()
col1
=
fields
.
String
Field
()
col2
=
fields
.
String
Field
()
col3
=
fields
.
String
Field
()
class
SimpleFilter
(
filters
.
BaseFilter
):
...
...
setup.py
View file @
c7a57c02
...
...
@@ -45,7 +45,7 @@ setup(
platforms
=
'any'
,
install_requires
=
[
'Flask>=0.7'
,
'wtforms
<2.0
'
'wtforms'
],
tests_require
=
[
'nose>=1.0'
,
...
...
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