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
1b77de38
Commit
1b77de38
authored
May 05, 2013
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed #215, added after_model_change event
parent
57f11713
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
19 deletions
+64
-19
view.py
flask_admin/contrib/mongoengine/view.py
+12
-6
view.py
flask_admin/contrib/peeweemodel/view.py
+8
-4
view.py
flask_admin/contrib/pymongo/view.py
+11
-5
view.py
flask_admin/contrib/sqlamodel/view.py
+8
-2
base.py
flask_admin/model/base.py
+25
-2
No files found.
flask_admin/contrib/mongoengine/view.py
View file @
1b77de38
...
...
@@ -339,12 +339,15 @@ class ModelView(BaseModelView):
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
model
.
save
()
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to create model'
)
return
False
else
:
self
.
after_model_change
(
form
,
model
,
True
)
return
True
def
update_model
(
self
,
form
,
model
):
"""
...
...
@@ -359,12 +362,15 @@ class ModelView(BaseModelView):
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
model
.
save
()
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to update model'
)
return
False
else
:
self
.
after_model_change
(
form
,
model
,
False
)
return
True
def
delete_model
(
self
,
model
):
"""
...
...
flask_admin/contrib/peeweemodel/view.py
View file @
1b77de38
...
...
@@ -342,12 +342,14 @@ class ModelView(BaseModelView):
# For peewee have to save inline forms after model was saved
save_inline
(
form
,
model
)
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to create model'
)
return
False
else
:
self
.
after_model_change
(
form
,
model
,
True
)
return
True
def
update_model
(
self
,
form
,
model
):
try
:
...
...
@@ -357,12 +359,14 @@ class ModelView(BaseModelView):
# For peewee have to save inline forms after model was saved
save_inline
(
form
,
model
)
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to update model'
)
return
False
else
:
self
.
after_model_change
(
form
,
model
,
False
)
return
True
def
delete_model
(
self
,
model
):
try
:
...
...
flask_admin/contrib/pymongo/view.py
View file @
1b77de38
...
...
@@ -269,12 +269,15 @@ class ModelView(BaseModelView):
model
=
form
.
data
self
.
on_model_change
(
form
,
model
)
self
.
coll
.
insert
(
model
)
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to create model'
)
return
False
else
:
self
.
after_model_change
(
form
,
model
,
True
)
return
True
def
update_model
(
self
,
form
,
model
):
"""
...
...
@@ -291,12 +294,15 @@ class ModelView(BaseModelView):
pk
=
self
.
get_pk_value
(
model
)
self
.
coll
.
update
({
'_id'
:
pk
},
model
)
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to update model'
)
return
False
else
:
self
.
after_model_change
(
form
,
model
,
False
)
return
True
def
delete_model
(
self
,
model
):
"""
...
...
flask_admin/contrib/sqlamodel/view.py
View file @
1b77de38
...
...
@@ -752,12 +752,15 @@ class ModelView(BaseModelView):
self
.
session
.
add
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
session
.
commit
()
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to create model'
)
self
.
session
.
rollback
()
return
False
else
:
self
.
after_model_change
(
form
,
model
,
True
)
return
True
def
update_model
(
self
,
form
,
model
):
"""
...
...
@@ -772,12 +775,15 @@ class ModelView(BaseModelView):
form
.
populate_obj
(
model
)
self
.
on_model_change
(
form
,
model
)
self
.
session
.
commit
()
return
True
except
Exception
,
ex
:
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
logging
.
exception
(
'Failed to update model'
)
self
.
session
.
rollback
()
return
False
else
:
self
.
after_model_change
(
form
,
model
,
False
)
return
True
def
delete_model
(
self
,
model
):
"""
...
...
flask_admin/model/base.py
View file @
1b77de38
...
...
@@ -658,7 +658,7 @@ class BaseModelView(BaseView, ActionsMixin):
"""
raise
NotImplemented
(
'Please implement get_one method'
)
# Model handlers
# Model
event
handlers
def
on_model_change
(
self
,
form
,
model
):
"""
Perform some actions after a model is created or updated.
...
...
@@ -666,7 +666,30 @@ class BaseModelView(BaseView, ActionsMixin):
Called from create_model and update_model in the same transaction
(if it has any meaning for a store backend).
By default do nothing.
By default does nothing.
:param form:
Form used to create/update model
:param model:
Model that will be created/updated
"""
pass
def
after_model_change
(
self
,
form
,
model
,
is_created
):
"""
Perform some actions after a model was created or updated and
committed to the database.
Called from create_model after successful database commit.
By default does nothing.
:param form:
Form used to create/update model
:param model:
Model that was created/updated
:param is_created:
True if model was created, False if model was updated
"""
pass
...
...
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