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
b612215c
Commit
b612215c
authored
Dec 26, 2016
by
PJ Janse van Rensburg
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://github.com/nycynik/flask-admin
into prs-to-merge
parents
30e014cc
81f96186
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
4 deletions
+52
-4
base.py
flask_admin/base.py
+33
-4
test_base.py
flask_admin/tests/test_base.py
+19
-0
No files found.
flask_admin/base.py
View file @
b612215c
...
@@ -518,8 +518,8 @@ class Admin(object):
...
@@ -518,8 +518,8 @@ class Admin(object):
self
.
template_mode
=
template_mode
or
'bootstrap2'
self
.
template_mode
=
template_mode
or
'bootstrap2'
self
.
category_icon_classes
=
category_icon_classes
or
dict
()
self
.
category_icon_classes
=
category_icon_classes
or
dict
()
# Add
predefined
index view
# Add index view
self
.
add_view
(
self
.
index_view
)
self
.
_set_admin_index_view
(
index_view
=
index_view
,
endpoint
=
endpoint
,
url
=
url
)
# Register with application
# Register with application
if
app
is
not
None
:
if
app
is
not
None
:
...
@@ -541,6 +541,30 @@ class Admin(object):
...
@@ -541,6 +541,30 @@ class Admin(object):
self
.
_add_view_to_menu
(
view
)
self
.
_add_view_to_menu
(
view
)
def
_set_admin_index_view
(
self
,
index_view
=
None
,
endpoint
=
None
,
url
=
None
):
"""
Add the admin index view.
:param index_view:
Home page view to use. Defaults to `AdminIndexView`.
:param url:
Base URL
:param endpoint:
Base endpoint name for index view. If you use multiple instances of the `Admin` class with
a single Flask application, you have to set a unique endpoint name for each instance.
"""
self
.
index_view
=
index_view
or
AdminIndexView
(
endpoint
=
endpoint
,
url
=
url
)
self
.
endpoint
=
endpoint
or
self
.
index_view
.
endpoint
self
.
url
=
url
or
self
.
index_view
.
url
# Add predefined index view
# assume index view is always the first element of views.
if
len
(
self
.
_views
)
>
0
:
self
.
_views
[
0
]
=
self
.
index_view
else
:
self
.
add_view
(
self
.
index_view
)
def
add_views
(
self
,
*
args
):
def
add_views
(
self
,
*
args
):
"""
"""
Add one or more views to the collection.
Add one or more views to the collection.
...
@@ -627,7 +651,8 @@ class Admin(object):
...
@@ -627,7 +651,8 @@ class Admin(object):
def
get_category_menu_item
(
self
,
name
):
def
get_category_menu_item
(
self
,
name
):
return
self
.
_menu_categories
.
get
(
name
)
return
self
.
_menu_categories
.
get
(
name
)
def
init_app
(
self
,
app
):
def
init_app
(
self
,
app
,
index_view
=
None
,
endpoint
=
None
,
url
=
None
):
"""
"""
Register all views with the Flask application.
Register all views with the Flask application.
...
@@ -638,10 +663,14 @@ class Admin(object):
...
@@ -638,10 +663,14 @@ class Admin(object):
self
.
_init_extension
()
self
.
_init_extension
()
# Register Index view
self
.
_set_admin_index_view
(
index_view
=
index_view
,
endpoint
=
endpoint
,
url
=
url
)
# Register views
# Register views
for
view
in
self
.
_views
:
for
view
in
self
.
_views
:
app
.
register_blueprint
(
view
.
create_blueprint
(
self
))
app
.
register_blueprint
(
view
.
create_blueprint
(
self
))
def
_init_extension
(
self
):
def
_init_extension
(
self
):
if
not
hasattr
(
self
.
app
,
'extensions'
):
if
not
hasattr
(
self
.
app
,
'extensions'
):
self
.
app
.
extensions
=
dict
()
self
.
app
.
extensions
=
dict
()
...
@@ -670,4 +699,4 @@ class Admin(object):
...
@@ -670,4 +699,4 @@ class Admin(object):
"""
"""
Return menu links.
Return menu links.
"""
"""
return
self
.
_menu_links
return
self
.
_menu_links
\ No newline at end of file
flask_admin/tests/test_base.py
View file @
b612215c
...
@@ -116,6 +116,25 @@ def test_custom_index_view():
...
@@ -116,6 +116,25 @@ def test_custom_index_view():
eq_
(
admin
.
_views
[
0
],
view
)
eq_
(
admin
.
_views
[
0
],
view
)
def
test_custom_index_view_in_init_app
():
view
=
base
.
AdminIndexView
(
name
=
'a'
,
category
=
'b'
,
endpoint
=
'c'
,
url
=
'/d'
,
template
=
'e'
)
app
=
Flask
(
__name__
)
admin
=
base
.
Admin
()
admin
.
init_app
(
app
,
index_view
=
view
)
eq_
(
admin
.
endpoint
,
'c'
)
eq_
(
admin
.
url
,
'/d'
)
ok_
(
admin
.
index_view
is
view
)
eq_
(
view
.
name
,
'a'
)
eq_
(
view
.
category
,
'b'
)
eq_
(
view
.
_template
,
'e'
)
# Check if view was added
eq_
(
len
(
admin
.
_views
),
1
)
eq_
(
admin
.
_views
[
0
],
view
)
def
test_base_registration
():
def
test_base_registration
():
app
=
Flask
(
__name__
)
app
=
Flask
(
__name__
)
admin
=
base
.
Admin
(
app
)
admin
=
base
.
Admin
(
app
)
...
...
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