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
d4a8cef6
Commit
d4a8cef6
authored
May 06, 2016
by
Paul Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1039 from jschneier/master
Closes #1037 -- add support for ``is_created`` to inline forms
parents
eea719ad
7f6a3be3
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
7 deletions
+26
-7
fields.py
flask_admin/contrib/mongoengine/fields.py
+3
-2
form.py
flask_admin/contrib/peewee/form.py
+3
-2
fields.py
flask_admin/contrib/sqla/fields.py
+3
-2
form.py
flask_admin/model/form.py
+17
-1
No files found.
flask_admin/contrib/mongoengine/fields.py
View file @
d4a8cef6
...
...
@@ -36,13 +36,14 @@ class ModelFormField(InlineFormField):
def
populate_obj
(
self
,
obj
,
name
):
candidate
=
getattr
(
obj
,
name
,
None
)
if
candidate
is
None
:
is_created
=
candidate
is
None
if
is_created
:
candidate
=
self
.
model
()
setattr
(
obj
,
name
,
candidate
)
self
.
form
.
populate_obj
(
candidate
)
self
.
view
.
on_model_change
(
self
.
form
,
candidate
)
self
.
view
.
_on_model_change
(
self
.
form
,
candidate
,
is_created
)
class
MongoFileField
(
fields
.
FileField
):
...
...
flask_admin/contrib/peewee/form.py
View file @
d4a8cef6
...
...
@@ -61,7 +61,8 @@ class InlineModelFormList(InlineFieldList):
for
field
in
self
.
entries
:
field_id
=
field
.
get_pk
()
if
field_id
in
pk_map
:
is_created
=
field_id
not
in
pk_map
if
not
is_created
:
model
=
pk_map
[
field_id
]
if
self
.
should_delete
(
field
):
...
...
@@ -75,7 +76,7 @@ class InlineModelFormList(InlineFieldList):
# Force relation
setattr
(
model
,
self
.
prop
,
model_id
)
self
.
inline_view
.
on_model_change
(
field
,
model
)
self
.
inline_view
.
_on_model_change
(
field
,
model
,
is_created
)
model
.
save
()
...
...
flask_admin/contrib/sqla/fields.py
View file @
d4a8cef6
...
...
@@ -279,7 +279,8 @@ class InlineModelFormList(InlineFieldList):
for
field
in
self
.
entries
:
field_id
=
field
.
get_pk
()
if
field_id
in
pk_map
:
is_created
=
field_id
not
in
pk_map
if
not
is_created
:
model
=
pk_map
[
field_id
]
if
self
.
should_delete
(
field
):
...
...
@@ -291,7 +292,7 @@ class InlineModelFormList(InlineFieldList):
field
.
populate_obj
(
model
,
None
)
self
.
inline_view
.
on_model_change
(
field
,
model
)
self
.
inline_view
.
_on_model_change
(
field
,
model
,
is_created
)
def
get_pk_from_identity
(
obj
):
...
...
flask_admin/model/form.py
View file @
d4a8cef6
import
inspect
import
warnings
from
flask_admin.form
import
BaseForm
,
rules
from
flask_admin._compat
import
iteritems
...
...
@@ -107,7 +108,7 @@ class InlineBaseFormAdmin(object):
"""
return
form_class
def
on_model_change
(
self
,
form
,
model
):
def
on_model_change
(
self
,
form
,
model
,
is_created
):
"""
Called when inline model is about to be saved.
...
...
@@ -115,9 +116,24 @@ class InlineBaseFormAdmin(object):
Inline form
:param model:
Model
:param is_created:
Will be set to True if the model is being created, False if edited
"""
pass
def
_on_model_change
(
self
,
form
,
model
,
is_created
):
"""
Compatibility helper.
"""
try
:
self
.
on_model_change
(
form
,
model
,
is_created
)
except
TypeError
:
msg
=
(
'
%
s.on_model_change() now accepts third '
+
'parameter is_created. Please update your code'
)
%
self
.
model
warnings
.
warn
(
msg
)
self
.
on_model_change
(
form
,
model
)
class
InlineFormAdmin
(
InlineBaseFormAdmin
):
"""
...
...
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