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
1d73974e
Commit
1d73974e
authored
Nov 27, 2012
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Renamed SQLa fields
parent
bd18251e
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
51 additions
and
34 deletions
+51
-34
view.py
flask_admin/contrib/mongoengine/view.py
+3
-3
form.py
flask_admin/contrib/peeweemodel/form.py
+2
-2
view.py
flask_admin/contrib/peeweemodel/view.py
+3
-3
form.py
flask_admin/contrib/sqlamodel/form.py
+3
-3
view.py
flask_admin/contrib/sqlamodel/view.py
+24
-13
base.py
flask_admin/model/base.py
+13
-7
form.py
flask_admin/model/form.py
+1
-1
test_basic.py
flask_admin/tests/sqlamodel/test_basic.py
+1
-1
test_model.py
flask_admin/tests/test_model.py
+1
-1
No files found.
flask_admin/contrib/mongoengine/view.py
View file @
1d73974e
...
...
@@ -145,7 +145,7 @@ class ModelView(BaseModelView):
if
field_class
==
mongoengine
.
EmbeddedDocumentField
:
continue
if
self
.
list
_display_pk
or
field_class
!=
mongoengine
.
ObjectIdField
:
if
self
.
column
_display_pk
or
field_class
!=
mongoengine
.
ObjectIdField
:
columns
.
append
(
n
)
return
columns
...
...
@@ -158,7 +158,7 @@ class ModelView(BaseModelView):
for
n
,
f
in
self
.
_get_model_fields
():
if
type
(
f
)
in
SORTABLE_FIELDS
:
if
self
.
list
_display_pk
or
type
(
f
)
!=
mongoengine
.
ObjectIdField
:
if
self
.
column
_display_pk
or
type
(
f
)
!=
mongoengine
.
ObjectIdField
:
columns
[
n
]
=
f
return
columns
...
...
@@ -232,7 +232,7 @@ class ModelView(BaseModelView):
form_class
=
model_form
(
self
.
model
,
base_class
=
BaseForm
,
only
=
self
.
form_columns
,
exclude
=
self
.
excluded_form
_columns
,
exclude
=
self
.
form_excluded
_columns
,
field_args
=
self
.
form_args
,
converter
=
self
.
model_form_converter
())
...
...
flask_admin/contrib/peeweemodel/form.py
View file @
1d73974e
...
...
@@ -131,8 +131,8 @@ class InlineModelConverter(InlineModelConverterBase):
# Remove reverse property from the list
ignore
=
[
reverse_field
.
name
]
if
info
.
excluded_form
_columns
:
exclude
=
ignore
+
info
.
excluded_form
_columns
if
info
.
form_excluded
_columns
:
exclude
=
ignore
+
info
.
form_excluded
_columns
else
:
exclude
=
ignore
...
...
flask_admin/contrib/peeweemodel/view.py
View file @
1d73974e
...
...
@@ -135,7 +135,7 @@ class ModelView(BaseModelView):
if
field_class
==
ForeignKeyField
:
columns
.
append
(
n
)
elif
self
.
list
_display_pk
or
field_class
!=
PrimaryKeyField
:
elif
self
.
column
_display_pk
or
field_class
!=
PrimaryKeyField
:
columns
.
append
(
n
)
return
columns
...
...
@@ -144,7 +144,7 @@ class ModelView(BaseModelView):
columns
=
dict
()
for
n
,
f
in
self
.
_get_model_fields
():
if
self
.
list
_display_pk
or
type
(
f
)
!=
PrimaryKeyField
:
if
self
.
column
_display_pk
or
type
(
f
)
!=
PrimaryKeyField
:
columns
[
n
]
=
f
return
columns
...
...
@@ -200,7 +200,7 @@ class ModelView(BaseModelView):
form_class
=
model_form
(
self
.
model
,
base_class
=
form
.
BaseForm
,
only
=
self
.
form_columns
,
exclude
=
self
.
excluded_form
_columns
,
exclude
=
self
.
form_excluded
_columns
,
field_args
=
self
.
form_args
,
converter
=
self
.
model_form_converter
())
...
...
flask_admin/contrib/sqlamodel/form.py
View file @
1d73974e
...
...
@@ -76,7 +76,7 @@ class AdminModelConverter(ModelConverterBase):
**
kwargs
)
elif
prop
.
direction
.
name
==
'ONETOMANY'
:
# Skip backrefs
if
not
local_column
.
foreign_keys
and
getattr
(
self
.
view
,
'hide_backrefs'
,
False
):
if
not
local_column
.
foreign_keys
and
getattr
(
self
.
view
,
'
column_
hide_backrefs'
,
False
):
return
None
return
QuerySelectMultipleField
(
...
...
@@ -412,8 +412,8 @@ class InlineModelConverter(InlineModelConverterBase):
# Remove reverse property from the list
ignore
=
[
reverse_prop
.
key
]
if
info
.
excluded_form
_columns
:
exclude
=
ignore
+
info
.
excluded_form
_columns
if
info
.
form_excluded
_columns
:
exclude
=
ignore
+
info
.
form_excluded
_columns
else
:
exclude
=
ignore
...
...
flask_admin/contrib/sqlamodel/view.py
View file @
1d73974e
...
...
@@ -25,12 +25,16 @@ class ModelView(BaseModelView):
admin.add_view(ModelView(User, db.session))
"""
hide_backrefs
=
True
column_hide_backrefs
=
ObsoleteAttr
(
'column_hide_backrefs'
,
'hide_backrefs'
,
True
)
"""
Set this to False if you want to see multiselect for model backrefs.
"""
auto_select_related
=
True
column_auto_select_related
=
ObsoleteAttr
(
'column_auto_select_related'
,
'auto_select_related'
,
True
)
"""
Enable automatic detection of displayed foreign keys in this view
and perform automatic joined loading for related models to improve
...
...
@@ -41,25 +45,29 @@ class ModelView(BaseModelView):
will still make separate database call.
"""
list_select_related
=
None
column_select_related
=
ObsoleteAttr
(
'column_select_related'
,
'list_select_related'
,
None
)
"""
List of parameters for SQLAlchemy `subqueryload`. Overrides `auto_select_related`
List of parameters for SQLAlchemy `subqueryload`. Overrides `
column_
auto_select_related`
property.
For example::
class PostAdmin(ModelAdmin):
list
_select_related = ('user', 'city')
column
_select_related = ('user', 'city')
You can also use properties::
class PostAdmin(ModelAdmin):
list
_select_related = (Post.user, Post.city)
column
_select_related = (Post.user, Post.city)
Please refer to the `subqueryload` on list of possible values.
"""
list_display_all_relations
=
False
column_display_all_relations
=
ObsoleteAttr
(
'column_display_all_relations'
,
'list_display_all_relations'
,
False
)
"""
Controls if list view should display all relations, not only many-to-one.
"""
...
...
@@ -221,10 +229,10 @@ class ModelView(BaseModelView):
raise
Exception
(
'Model
%
s does not have primary key.'
%
self
.
model
.
__name__
)
# Configuration
if
not
self
.
list
_select_related
:
if
not
self
.
column
_select_related
:
self
.
_auto_joins
=
self
.
scaffold_auto_joins
()
else
:
self
.
_auto_joins
=
self
.
list
_select_related
self
.
_auto_joins
=
self
.
column
_select_related
# Internal API
def
_get_model_iterator
(
self
,
model
=
None
):
...
...
@@ -258,7 +266,7 @@ class ModelView(BaseModelView):
for
p
in
self
.
_get_model_iterator
():
# Verify type
if
hasattr
(
p
,
'direction'
):
if
self
.
list
_display_all_relations
or
p
.
direction
.
name
==
'MANYTOONE'
:
if
self
.
column
_display_all_relations
or
p
.
direction
.
name
==
'MANYTOONE'
:
columns
.
append
(
p
.
key
)
elif
hasattr
(
p
,
'columns'
):
# TODO: Check for multiple columns
...
...
@@ -267,7 +275,7 @@ class ModelView(BaseModelView):
if
column
.
foreign_keys
:
continue
if
not
self
.
list
_display_pk
and
column
.
primary_key
:
if
not
self
.
column
_display_pk
and
column
.
primary_key
:
continue
columns
.
append
(
p
.
key
)
...
...
@@ -295,7 +303,7 @@ class ModelView(BaseModelView):
if
column
.
foreign_keys
:
continue
if
not
self
.
list
_display_pk
and
column
.
primary_key
:
if
not
self
.
column
_display_pk
and
column
.
primary_key
:
continue
columns
[
p
.
key
]
=
column
...
...
@@ -435,7 +443,7 @@ class ModelView(BaseModelView):
converter
=
self
.
model_form_converter
(
self
.
session
,
self
)
form_class
=
form
.
get_form
(
self
.
model
,
converter
,
only
=
self
.
form_columns
,
exclude
=
self
.
excluded_form
_columns
,
exclude
=
self
.
form_excluded
_columns
,
field_args
=
self
.
form_args
)
if
self
.
inline_models
:
...
...
@@ -466,6 +474,9 @@ class ModelView(BaseModelView):
Return list of joined tables by going through the
displayed columns.
"""
if
not
self
.
column_auto_select_related
:
return
[]
relations
=
set
()
for
p
in
self
.
_get_model_iterator
():
...
...
flask_admin/model/base.py
View file @
1d73974e
...
...
@@ -180,7 +180,9 @@ class BaseModelView(BaseView, ActionsMixin):
column_filters = ('user', 'email')
"""
list_display_pk
=
False
column_display_pk
=
ObsoleteAttr
(
'column_display_pk'
,
'list_display_pk'
,
False
)
"""
Controls if primary key should be displayed in list view.
"""
...
...
@@ -222,14 +224,16 @@ class BaseModelView(BaseView, ActionsMixin):
form_columns = ('name', 'email')
"""
excluded_form_columns
=
None
form_excluded_columns
=
ObsoleteAttr
(
'form_excluded_columns'
,
'excluded_form_columns'
,
None
)
"""
Collection of excluded form field names.
For example::
class MyModelView(BaseModelView):
excluded_form
_columns = ('last_name', 'email')
form_excluded
_columns = ('last_name', 'email')
"""
form_overrides
=
None
...
...
@@ -243,13 +247,15 @@ class BaseModelView(BaseView, ActionsMixin):
"""
# Actions
disallowed_actions
=
[]
action_disallowed_list
=
ObsoleteAttr
(
'action_disallowed_list'
,
'disallowed_actions'
,
[])
"""
Set of disallowed action names. For example, if you want to disable
mass model deletion, do something like this:
class MyModelView(BaseModelView):
disallowed_actions
= ['delete']
action_disallowed_list
= ['delete']
"""
# Various settings
...
...
@@ -732,9 +738,9 @@ class BaseModelView(BaseView, ActionsMixin):
on some condition.
Default implementation only checks if particular action
is not in `
disallowed_actions
`.
is not in `
action_disallowed_list
`.
"""
return
name
not
in
self
.
disallowed_actions
return
name
not
in
self
.
action_disallowed_list
@
contextfunction
def
get_list_value
(
self
,
context
,
model
,
name
):
...
...
flask_admin/model/form.py
View file @
1d73974e
...
...
@@ -20,7 +20,7 @@ class InlineFormAdmin(object):
class MyUserInfoForm(InlineFormAdmin):
form_columns = ('name', 'email')
"""
_defaults
=
[
'form_columns'
,
'
excluded_form
_columns'
,
'form_args'
]
_defaults
=
[
'form_columns'
,
'
form_excluded
_columns'
,
'form_args'
]
def
__init__
(
self
,
model
,
**
kwargs
):
"""
...
...
flask_admin/tests/sqlamodel/test_basic.py
View file @
1d73974e
...
...
@@ -317,7 +317,7 @@ def test_non_int_pk():
def
test_form
():
# TODO: form_columns
# TODO:
excluded_form
_columns
# TODO:
form_excluded
_columns
# TODO: form_args
# TODO: Select columns
pass
...
...
flask_admin/tests/test_model.py
View file @
1d73974e
...
...
@@ -289,7 +289,7 @@ def test_column_filters():
def
test_form
():
# TODO: form_columns
# TODO:
excluded_form
_columns
# TODO:
form_excluded
_columns
# TODO: form_args
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