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
831c38f3
Commit
831c38f3
authored
Mar 23, 2016
by
michael lynch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added Admin view updates to the init_app call, so users can add the admin view at that time.
parent
c945f214
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
22 deletions
+33
-22
base.py
flask_admin/base.py
+33
-22
No files found.
flask_admin/base.py
View file @
831c38f3
import
os.path
as
op
import
warnings
from
functools
import
wraps
...
...
@@ -440,7 +439,7 @@ class AdminIndexView(BaseView):
super
(
AdminIndexView
,
self
)
.
__init__
(
name
or
babel
.
lazy_gettext
(
'Home'
),
category
,
endpoint
or
'admin'
,
'/admin'
if
url
is
None
else
url
,
url
or
'/admin'
,
'static'
,
menu_class_name
=
menu_class_name
,
menu_icon_type
=
menu_icon_type
,
...
...
@@ -509,9 +508,6 @@ class Admin(object):
name
=
'Admin'
self
.
name
=
name
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
self
.
static_url_path
=
static_url_path
self
.
subdomain
=
subdomain
self
.
base_template
=
base_template
or
'admin/base.html'
...
...
@@ -519,12 +515,32 @@ class Admin(object):
self
.
category_icon_classes
=
category_icon_classes
or
dict
()
# Add predefined index view
self
.
add_view
(
self
.
index_view
)
self
.
_set_admin_index_view
(
index_view
=
index_view
,
endpoint
=
endpoint
,
url
=
url
)
# Register with application
if
app
is
not
None
:
self
.
_init_extension
()
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
self
.
add_view
(
self
.
index_view
)
def
add_view
(
self
,
view
):
"""
Add a view to the collection.
...
...
@@ -565,7 +581,7 @@ class Admin(object):
Link to add.
"""
if
link
.
category
:
self
.
add_menu_item
(
link
,
link
.
category
)
self
.
_
add_menu_item
(
link
,
link
.
category
)
else
:
self
.
_menu_links
.
append
(
link
)
...
...
@@ -585,15 +601,7 @@ class Admin(object):
for
link
in
args
:
self
.
add_link
(
link
)
def
add_menu_item
(
self
,
menu_item
,
target_category
=
None
):
"""
Add menu item to menu tree hierarchy.
:param menu_item:
MenuItem class instance
:param target_category:
Target category name
"""
def
_add_menu_item
(
self
,
menu_item
,
target_category
):
if
target_category
:
cat_text
=
as_unicode
(
target_category
)
...
...
@@ -611,10 +619,6 @@ class Admin(object):
else
:
self
.
_menu
.
append
(
menu_item
)
def
_add_menu_item
(
self
,
menu_item
,
target_category
):
warnings
.
warn
(
'Admin._add_menu_item is obsolete - use Admin.add_menu_item instead.'
)
return
self
.
add_menu_item
(
menu_item
,
target_category
)
def
_add_view_to_menu
(
self
,
view
):
"""
Add a view to the menu tree
...
...
@@ -622,12 +626,13 @@ class Admin(object):
:param view:
View to add
"""
self
.
add_menu_item
(
MenuView
(
view
.
name
,
view
),
view
.
category
)
self
.
_
add_menu_item
(
MenuView
(
view
.
name
,
view
),
view
.
category
)
def
get_category_menu_item
(
self
,
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.
...
...
@@ -638,10 +643,16 @@ class Admin(object):
self
.
_init_extension
()
self
.
_views
=
[]
# Register views
for
view
in
self
.
_views
:
app
.
register_blueprint
(
view
.
create_blueprint
(
self
))
# Register Index view
self
.
_set_admin_index_view
(
index_view
=
index_view
,
endpoint
=
endpoint
,
url
=
url
)
def
_init_extension
(
self
):
if
not
hasattr
(
self
.
app
,
'extensions'
):
self
.
app
.
extensions
=
dict
()
...
...
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