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
b6c8c836
Commit
b6c8c836
authored
Jul 20, 2013
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed #247. on_model_change now accepts third parameter is_created
parent
8f1aec03
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
25 additions
and
11 deletions
+25
-11
TODO.txt
TODO.txt
+0
-1
view.py
flask_admin/contrib/mongoengine/view.py
+2
-2
view.py
flask_admin/contrib/peewee/view.py
+2
-2
view.py
flask_admin/contrib/pymongo/view.py
+2
-2
view.py
flask_admin/contrib/sqla/view.py
+2
-2
base.py
flask_admin/model/base.py
+16
-1
test_basic.py
flask_admin/tests/sqlamodel/test_basic.py
+1
-1
No files found.
TODO.txt
View file @
b6c8c836
- Python 3
- Test for raw wtforms form
- Model backends
- Contribute field declaratively with sort
- model_changed callback to accept 3rd parameter
- MongoEngine
- ImageField support
flask_admin/contrib/mongoengine/view.py
View file @
b6c8c836
...
...
@@ -343,7 +343,7 @@ class ModelView(BaseModelView):
try
:
model
=
self
.
model
()
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
True
)
model
.
save
()
except
Exception
as
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
...
...
@@ -366,7 +366,7 @@ class ModelView(BaseModelView):
"""
try
:
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
False
)
model
.
save
()
except
Exception
as
ex
:
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
...
...
flask_admin/contrib/peewee/view.py
View file @
b6c8c836
...
...
@@ -335,7 +335,7 @@ class ModelView(BaseModelView):
try
:
model
=
self
.
model
()
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
True
)
model
.
save
()
# For peewee have to save inline forms after model was saved
...
...
@@ -352,7 +352,7 @@ class ModelView(BaseModelView):
def
update_model
(
self
,
form
,
model
):
try
:
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
False
)
model
.
save
()
# For peewee have to save inline forms after model was saved
...
...
flask_admin/contrib/pymongo/view.py
View file @
b6c8c836
...
...
@@ -255,7 +255,7 @@ class ModelView(BaseModelView):
"""
try
:
model
=
form
.
data
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
True
)
self
.
coll
.
insert
(
model
)
except
Exception
as
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
...
...
@@ -278,7 +278,7 @@ class ModelView(BaseModelView):
"""
try
:
model
.
update
(
form
.
data
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
False
)
pk
=
self
.
get_pk_value
(
model
)
self
.
coll
.
update
({
'_id'
:
pk
},
model
)
...
...
flask_admin/contrib/sqla/view.py
View file @
b6c8c836
...
...
@@ -764,7 +764,7 @@ class ModelView(BaseModelView):
model
=
self
.
model
()
form
.
populate_obj
(
model
)
self
.
session
.
add
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
True
)
self
.
session
.
commit
()
except
Exception
as
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
...
@@ -787,7 +787,7 @@ class ModelView(BaseModelView):
"""
try
:
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
_on_model_change
(
form
,
model
,
False
)
self
.
session
.
commit
()
except
Exception
as
ex
:
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
...
flask_admin/model/base.py
View file @
b6c8c836
...
...
@@ -707,7 +707,7 @@ class BaseModelView(BaseView, ActionsMixin):
raise
NotImplemented
(
'Please implement get_one method'
)
# Model event handlers
def
on_model_change
(
self
,
form
,
model
):
def
on_model_change
(
self
,
form
,
model
,
is_created
):
"""
Perform some actions after a model is created or updated.
...
...
@@ -720,9 +720,24 @@ class BaseModelView(BaseView, ActionsMixin):
Form used to create/update model
:param model:
Model that will be created/updated
:param is_created:
Will be set to True if model was created and to 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
)
def
after_model_change
(
self
,
form
,
model
,
is_created
):
"""
Perform some actions after a model was created or updated and
...
...
flask_admin/tests/sqlamodel/test_basic.py
View file @
b6c8c836
...
...
@@ -502,7 +502,7 @@ def test_on_model_change_delete():
db
.
create_all
()
class
ModelView
(
CustomModelView
):
def
on_model_change
(
self
,
form
,
model
):
def
on_model_change
(
self
,
form
,
model
,
is_created
):
model
.
test1
=
model
.
test1
.
upper
()
def
on_model_delete
(
self
,
model
):
...
...
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