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
fd80711e
Commit
fd80711e
authored
Jun 21, 2013
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow inline model post-processing for sqla/pewee backends
parent
9207bdc6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
16 deletions
+35
-16
filters.py
flask_admin/contrib/mongoengine/filters.py
+6
-2
form.py
flask_admin/contrib/peeweemodel/form.py
+4
-1
fields.py
flask_admin/contrib/sqlamodel/fields.py
+6
-6
form.py
flask_admin/contrib/sqlamodel/form.py
+6
-5
form.py
flask_admin/model/form.py
+13
-2
No files found.
flask_admin/contrib/mongoengine/filters.py
View file @
fd80711e
...
@@ -85,11 +85,15 @@ class FilterSmaller(BaseMongoEngineFilter):
...
@@ -85,11 +85,15 @@ class FilterSmaller(BaseMongoEngineFilter):
# Customized type filters
# Customized type filters
class
BooleanEqualFilter
(
FilterEqual
,
filters
.
BaseBooleanFilter
):
class
BooleanEqualFilter
(
FilterEqual
,
filters
.
BaseBooleanFilter
):
pass
def
apply
(
self
,
query
,
value
):
flt
=
{
'
%
s'
%
self
.
column
.
name
:
value
==
'1'
}
return
query
.
filter
(
**
flt
)
class
BooleanNotEqualFilter
(
FilterNotEqual
,
filters
.
BaseBooleanFilter
):
class
BooleanNotEqualFilter
(
FilterNotEqual
,
filters
.
BaseBooleanFilter
):
pass
def
apply
(
self
,
query
,
value
):
flt
=
{
'
%
s'
%
self
.
column
.
name
:
value
!=
'1'
}
return
query
.
filter
(
**
flt
)
# Base peewee filter field converter
# Base peewee filter field converter
...
...
flask_admin/contrib/peeweemodel/form.py
View file @
fd80711e
...
@@ -13,10 +13,11 @@ from .tools import get_primary_key
...
@@ -13,10 +13,11 @@ from .tools import get_primary_key
class
InlineModelFormList
(
InlineFieldList
):
class
InlineModelFormList
(
InlineFieldList
):
def
__init__
(
self
,
form
,
model
,
prop
,
**
kwargs
):
def
__init__
(
self
,
form
,
model
,
prop
,
inline_view
,
**
kwargs
):
self
.
form
=
form
self
.
form
=
form
self
.
model
=
model
self
.
model
=
model
self
.
prop
=
prop
self
.
prop
=
prop
self
.
inline_view
=
inline_view
self
.
_pk
=
get_primary_key
(
model
)
self
.
_pk
=
get_primary_key
(
model
)
...
@@ -63,6 +64,8 @@ class InlineModelFormList(InlineFieldList):
...
@@ -63,6 +64,8 @@ class InlineModelFormList(InlineFieldList):
# Force relation
# Force relation
setattr
(
model
,
self
.
prop
,
model_id
)
setattr
(
model
,
self
.
prop
,
model_id
)
self
.
inline_view
.
on_model_change
(
field
,
model
)
model
.
save
()
model
.
save
()
...
...
flask_admin/contrib/sqlamodel/fields.py
View file @
fd80711e
...
@@ -18,11 +18,6 @@ except ImportError:
...
@@ -18,11 +18,6 @@ except ImportError:
has_identity_key
=
False
has_identity_key
=
False
__all__
=
(
'QuerySelectField'
,
'QuerySelectMultipleField'
,
)
class
QuerySelectField
(
SelectFieldBase
):
class
QuerySelectField
(
SelectFieldBase
):
"""
"""
Will display a select drop-down field to choose between ORM results in a
Will display a select drop-down field to choose between ORM results in a
...
@@ -184,7 +179,7 @@ class InlineModelFormList(InlineFieldList):
...
@@ -184,7 +179,7 @@ class InlineModelFormList(InlineFieldList):
"""
"""
TODO: Documentation
TODO: Documentation
"""
"""
def
__init__
(
self
,
form
,
session
,
model
,
prop
,
**
kwargs
):
def
__init__
(
self
,
form
,
session
,
model
,
prop
,
inline_view
,
**
kwargs
):
"""
"""
Default constructor.
Default constructor.
...
@@ -196,11 +191,14 @@ class InlineModelFormList(InlineFieldList):
...
@@ -196,11 +191,14 @@ class InlineModelFormList(InlineFieldList):
Related model
Related model
:param prop:
:param prop:
Related property name
Related property name
:param inline_view:
Inline view
"""
"""
self
.
form
=
form
self
.
form
=
form
self
.
session
=
session
self
.
session
=
session
self
.
model
=
model
self
.
model
=
model
self
.
prop
=
prop
self
.
prop
=
prop
self
.
inline_view
=
inline_view
self
.
_pk
=
get_primary_key
(
model
)
self
.
_pk
=
get_primary_key
(
model
)
...
@@ -234,6 +232,8 @@ class InlineModelFormList(InlineFieldList):
...
@@ -234,6 +232,8 @@ class InlineModelFormList(InlineFieldList):
field
.
populate_obj
(
model
,
None
)
field
.
populate_obj
(
model
,
None
)
self
.
inline_view
.
on_model_change
(
field
,
model
)
def
get_pk_from_identity
(
obj
):
def
get_pk_from_identity
(
obj
):
# TODO: Remove me
# TODO: Remove me
...
...
flask_admin/contrib/sqlamodel/form.py
View file @
fd80711e
...
@@ -470,11 +470,11 @@ class InlineModelConverter(InlineModelConverterBase):
...
@@ -470,11 +470,11 @@ class InlineModelConverter(InlineModelConverterBase):
# Create form
# Create form
child_form
=
get_form
(
info
.
model
,
child_form
=
get_form
(
info
.
model
,
converter
,
converter
,
only
=
info
.
form_columns
,
only
=
info
.
form_columns
,
exclude
=
exclude
,
exclude
=
exclude
,
field_args
=
info
.
form_args
,
field_args
=
info
.
form_args
,
hidden_pk
=
True
)
hidden_pk
=
True
)
# Post-process form
# Post-process form
child_form
=
info
.
postprocess_form
(
child_form
)
child_form
=
info
.
postprocess_form
(
child_form
)
...
@@ -492,6 +492,7 @@ class InlineModelConverter(InlineModelConverterBase):
...
@@ -492,6 +492,7 @@ class InlineModelConverter(InlineModelConverterBase):
self
.
session
,
self
.
session
,
info
.
model
,
info
.
model
,
reverse_prop
.
key
,
reverse_prop
.
key
,
info
**
kwargs
))
**
kwargs
))
return
form_class
return
form_class
flask_admin/model/form.py
View file @
fd80711e
...
@@ -56,6 +56,17 @@ class InlineFormAdmin(object):
...
@@ -56,6 +56,17 @@ class InlineFormAdmin(object):
"""
"""
return
form_class
return
form_class
def
on_model_change
(
self
,
form
,
model
):
"""
Called when inline model is about to be saved.
:param form:
Inline form
:param model:
Model
"""
pass
class
ModelConverterBase
(
object
):
class
ModelConverterBase
(
object
):
def
__init__
(
self
,
converters
=
None
,
use_mro
=
True
):
def
__init__
(
self
,
converters
=
None
,
use_mro
=
True
):
...
@@ -93,8 +104,8 @@ class ModelConverterBase(object):
...
@@ -93,8 +104,8 @@ class ModelConverterBase(object):
return
None
return
None
def
get_form
(
self
,
model
,
base_class
=
BaseForm
,
def
get_form
(
self
,
model
,
base_class
=
BaseForm
,
only
=
None
,
exclude
=
None
,
only
=
None
,
exclude
=
None
,
field_args
=
None
):
field_args
=
None
):
raise
NotImplemented
()
raise
NotImplemented
()
...
...
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