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
4876f487
Commit
4876f487
authored
Aug 14, 2013
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Renamed MongoEngine InlineFormAdmin to EmbeddedForm to preserve backwards compatibility
parent
1aec2a18
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
27 additions
and
24 deletions
+27
-24
__init__.py
flask_admin/contrib/mongoengine/__init__.py
+1
-0
form.py
flask_admin/contrib/mongoengine/form.py
+9
-7
view.py
flask_admin/contrib/mongoengine/view.py
+4
-4
form.py
flask_admin/contrib/sqla/form.py
+5
-5
form.py
flask_admin/model/form.py
+6
-6
test_basic.py
flask_admin/tests/mongoengine/test_basic.py
+2
-2
No files found.
flask_admin/contrib/mongoengine/__init__.py
View file @
4876f487
...
@@ -4,3 +4,4 @@ except ImportError:
...
@@ -4,3 +4,4 @@ except ImportError:
raise
Exception
(
'Please install flask-mongoengine in order to use mongoengine backend'
)
raise
Exception
(
'Please install flask-mongoengine in order to use mongoengine backend'
)
from
.view
import
ModelView
from
.view
import
ModelView
from
.form
import
EmbeddedForm
flask_admin/contrib/mongoengine/form.py
View file @
4876f487
...
@@ -7,7 +7,7 @@ from wtforms import fields, validators
...
@@ -7,7 +7,7 @@ from wtforms import fields, validators
from
flask.ext.mongoengine.wtf
import
orm
,
fields
as
mongo_fields
from
flask.ext.mongoengine.wtf
import
orm
,
fields
as
mongo_fields
from
flask.ext.admin
import
form
from
flask.ext.admin
import
form
from
flask.ext.admin.model.form
import
FieldPlaceholder
,
InlineFormAdmin
from
flask.ext.admin.model.form
import
FieldPlaceholder
,
Inline
Base
FormAdmin
from
flask.ext.admin.model.fields
import
InlineFieldList
from
flask.ext.admin.model.fields
import
InlineFieldList
from
flask.ext.admin.model.widgets
import
InlineFormWidget
from
flask.ext.admin.model.widgets
import
InlineFormWidget
from
flask.ext.admin._compat
import
iteritems
from
flask.ext.admin._compat
import
iteritems
...
@@ -15,6 +15,10 @@ from flask.ext.admin._compat import iteritems
...
@@ -15,6 +15,10 @@ from flask.ext.admin._compat import iteritems
from
.fields
import
ModelFormField
,
MongoFileField
,
MongoImageField
from
.fields
import
ModelFormField
,
MongoFileField
,
MongoImageField
class
EmbeddedForm
(
InlineBaseFormAdmin
):
pass
class
CustomModelConverter
(
orm
.
ModelConverter
):
class
CustomModelConverter
(
orm
.
ModelConverter
):
"""
"""
Customized MongoEngine form conversion class.
Customized MongoEngine form conversion class.
...
@@ -39,18 +43,16 @@ class CustomModelConverter(orm.ModelConverter):
...
@@ -39,18 +43,16 @@ class CustomModelConverter(orm.ModelConverter):
def
_get_subdocument_config
(
self
,
name
):
def
_get_subdocument_config
(
self
,
name
):
config
=
getattr
(
self
.
view
,
'form_subdocuments'
,
{})
config
=
getattr
(
self
.
view
,
'form_subdocuments'
,
{})
print
'x'
,
name
,
config
p
=
config
.
get
(
name
)
p
=
config
.
get
(
name
)
if
not
p
:
if
not
p
:
return
InlineFormAdmin
()
return
EmbeddedForm
()
if
isinstance
(
p
,
dict
):
if
isinstance
(
p
,
dict
):
return
InlineFormAdmin
(
**
p
)
return
EmbeddedForm
(
**
p
)
elif
isinstance
(
p
,
InlineFormAdmin
):
elif
isinstance
(
p
,
EmbeddedForm
):
return
p
return
p
raise
ValueError
(
'Invalid subdocument type: expecting dict or instance of
InlineFormAdmin
, got
%
s'
%
type
(
p
))
raise
ValueError
(
'Invalid subdocument type: expecting dict or instance of
flask.ext.admin.contrib.mongoengine.EmbeddedForm
, got
%
s'
%
type
(
p
))
def
clone_converter
(
self
,
view
):
def
clone_converter
(
self
,
view
):
return
self
.
__class__
(
view
)
return
self
.
__class__
(
view
)
...
...
flask_admin/contrib/mongoengine/view.py
View file @
4876f487
...
@@ -103,7 +103,7 @@ class ModelView(BaseModelView):
...
@@ -103,7 +103,7 @@ class ModelView(BaseModelView):
Subdocument configuration options.
Subdocument configuration options.
This field accepts dictionary, where key is field name and value is either dictionary or instance of the
This field accepts dictionary, where key is field name and value is either dictionary or instance of the
`
InlineFormAdmin
`.
`
flask.ext.admin.contrib.EmbeddedForm
`.
Consider following example::
Consider following example::
...
@@ -130,7 +130,7 @@ class ModelView(BaseModelView):
...
@@ -130,7 +130,7 @@ class ModelView(BaseModelView):
It is also possible to use class-based embedded document configuration:
It is also possible to use class-based embedded document configuration:
class CommentEmbed(
InlineFormAdmin
):
class CommentEmbed(
EmbeddedForm
):
form_columns = ('name',)
form_columns = ('name',)
class MyAdmin(ModelView):
class MyAdmin(ModelView):
...
@@ -140,10 +140,10 @@ class ModelView(BaseModelView):
...
@@ -140,10 +140,10 @@ class ModelView(BaseModelView):
Arbitrary depth nesting is supported::
Arbitrary depth nesting is supported::
class SomeEmbed(
InlineFormAdmin
):
class SomeEmbed(
EmbeddedForm
):
form_excluded_columns = ('test',)
form_excluded_columns = ('test',)
class CommentEmbed(
InlineFormAdmin
):
class CommentEmbed(
EmbeddedForm
):
form_columns = ('name',)
form_columns = ('name',)
form_subdocuments = {
form_subdocuments = {
'inner': SomeEmbed()
'inner': SomeEmbed()
...
...
flask_admin/contrib/sqla/form.py
View file @
4876f487
...
@@ -4,7 +4,7 @@ from sqlalchemy import Boolean, Column
...
@@ -4,7 +4,7 @@ from sqlalchemy import Boolean, Column
from
flask.ext.admin
import
form
from
flask.ext.admin
import
form
from
flask.ext.admin.form
import
Select2Field
from
flask.ext.admin.form
import
Select2Field
from
flask.ext.admin.model.form
import
(
converts
,
ModelConverterBase
,
from
flask.ext.admin.model.form
import
(
converts
,
ModelConverterBase
,
Inline
Model
FormAdmin
,
InlineModelConverterBase
,
InlineFormAdmin
,
InlineModelConverterBase
,
FieldPlaceholder
)
FieldPlaceholder
)
from
flask.ext.admin.model.helpers
import
prettify_name
from
flask.ext.admin.model.helpers
import
prettify_name
from
flask.ext.admin._backwards
import
get_property
from
flask.ext.admin._backwards
import
get_property
...
@@ -437,7 +437,7 @@ class InlineModelConverter(InlineModelConverterBase):
...
@@ -437,7 +437,7 @@ class InlineModelConverter(InlineModelConverterBase):
Flask-Admin view object
Flask-Admin view object
:param model_converter:
:param model_converter:
Model converter class. Will be automatically instantiated with
Model converter class. Will be automatically instantiated with
appropriate `Inline
Model
FormAdmin` instance.
appropriate `InlineFormAdmin` instance.
"""
"""
super
(
InlineModelConverter
,
self
)
.
__init__
(
view
)
super
(
InlineModelConverter
,
self
)
.
__init__
(
view
)
self
.
session
=
session
self
.
session
=
session
...
@@ -449,7 +449,7 @@ class InlineModelConverter(InlineModelConverterBase):
...
@@ -449,7 +449,7 @@ class InlineModelConverter(InlineModelConverterBase):
# Special case for model instances
# Special case for model instances
if
info
is
None
:
if
info
is
None
:
if
hasattr
(
p
,
'_sa_class_manager'
):
if
hasattr
(
p
,
'_sa_class_manager'
):
return
Inline
Model
FormAdmin
(
p
)
return
InlineFormAdmin
(
p
)
else
:
else
:
model
=
getattr
(
p
,
'model'
,
None
)
model
=
getattr
(
p
,
'model'
,
None
)
...
@@ -461,9 +461,9 @@ class InlineModelConverter(InlineModelConverterBase):
...
@@ -461,9 +461,9 @@ class InlineModelConverter(InlineModelConverterBase):
if
not
attr
.
startswith
(
'_'
)
and
attr
!=
'model'
:
if
not
attr
.
startswith
(
'_'
)
and
attr
!=
'model'
:
attrs
[
attr
]
=
getattr
(
p
,
attr
)
attrs
[
attr
]
=
getattr
(
p
,
attr
)
return
Inline
Model
FormAdmin
(
model
,
**
attrs
)
return
InlineFormAdmin
(
model
,
**
attrs
)
info
=
Inline
Model
FormAdmin
(
model
,
**
attrs
)
info
=
InlineFormAdmin
(
model
,
**
attrs
)
return
info
return
info
...
...
flask_admin/model/form.py
View file @
4876f487
...
@@ -11,14 +11,14 @@ def converts(*args):
...
@@ -11,14 +11,14 @@ def converts(*args):
return
_inner
return
_inner
class
InlineFormAdmin
(
object
):
class
Inline
Base
FormAdmin
(
object
):
"""
"""
Settings for inline form administration.
Settings for inline form administration.
You can use this class to customize displayed form.
You can use this class to customize displayed form.
For example::
For example::
class MyUserInfoForm(InlineFormAdmin):
class MyUserInfoForm(Inline
Base
FormAdmin):
form_columns = ('name', 'email')
form_columns = ('name', 'email')
"""
"""
_defaults
=
[
'form_base_class'
,
'form_columns'
,
'form_excluded_columns'
,
'form_args'
,
'form_extra_fields'
]
_defaults
=
[
'form_base_class'
,
'form_columns'
,
'form_excluded_columns'
,
'form_args'
,
'form_extra_fields'
]
...
@@ -72,7 +72,7 @@ class InlineFormAdmin(object):
...
@@ -72,7 +72,7 @@ class InlineFormAdmin(object):
pass
pass
class
Inline
ModelFormAdmin
(
Inlin
eFormAdmin
):
class
Inline
FormAdmin
(
InlineBas
eFormAdmin
):
"""
"""
Settings for inline form administration. Used by relational backends (SQLAlchemy, Peewee), where model
Settings for inline form administration. Used by relational backends (SQLAlchemy, Peewee), where model
class can not be inherited from the parent model definition.
class can not be inherited from the parent model definition.
...
@@ -86,7 +86,7 @@ class InlineModelFormAdmin(InlineFormAdmin):
...
@@ -86,7 +86,7 @@ class InlineModelFormAdmin(InlineFormAdmin):
"""
"""
self
.
model
=
model
self
.
model
=
model
super
(
Inline
Model
FormAdmin
,
self
)
.
__init__
(
**
kwargs
)
super
(
InlineFormAdmin
,
self
)
.
__init__
(
**
kwargs
)
class
ModelConverterBase
(
object
):
class
ModelConverterBase
(
object
):
...
@@ -173,8 +173,8 @@ class InlineModelConverterBase(object):
...
@@ -173,8 +173,8 @@ class InlineModelConverterBase(object):
- Model class
- Model class
"""
"""
if
isinstance
(
p
,
tuple
):
if
isinstance
(
p
,
tuple
):
return
Inline
Model
FormAdmin
(
p
[
0
],
**
p
[
1
])
return
InlineFormAdmin
(
p
[
0
],
**
p
[
1
])
elif
isinstance
(
p
,
Inline
Model
FormAdmin
):
elif
isinstance
(
p
,
InlineFormAdmin
):
return
p
return
p
return
None
return
None
...
...
flask_admin/tests/mongoengine/test_basic.py
View file @
4876f487
...
@@ -259,7 +259,7 @@ def test_subdocument_config():
...
@@ -259,7 +259,7 @@ def test_subdocument_config():
def
test_subdocument_class_config
():
def
test_subdocument_class_config
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
from
flask.ext.admin.
model.form
import
InlineFormAdmin
from
flask.ext.admin.
contrib.mongoengine
import
EmbeddedForm
class
Comment
(
db
.
EmbeddedDocument
):
class
Comment
(
db
.
EmbeddedDocument
):
name
=
db
.
StringField
(
max_length
=
20
,
required
=
True
)
name
=
db
.
StringField
(
max_length
=
20
,
required
=
True
)
...
@@ -269,7 +269,7 @@ def test_subdocument_class_config():
...
@@ -269,7 +269,7 @@ def test_subdocument_class_config():
test1
=
db
.
StringField
(
max_length
=
20
)
test1
=
db
.
StringField
(
max_length
=
20
)
subdoc
=
db
.
EmbeddedDocumentField
(
Comment
)
subdoc
=
db
.
EmbeddedDocumentField
(
Comment
)
class
EmbeddedConfig
(
InlineFormAdmin
):
class
EmbeddedConfig
(
EmbeddedForm
):
form_columns
=
(
'name'
,)
form_columns
=
(
'name'
,)
# Check only
# Check only
...
...
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