Commit a460be28 authored by Sean Lynch's avatar Sean Lynch

Use url/endpoint from passed in index_view if present

parent 72a773f5
...@@ -239,13 +239,10 @@ class AdminIndexView(BaseView): ...@@ -239,13 +239,10 @@ class AdminIndexView(BaseView):
* Automatically associates with static folder. * Automatically associates with static folder.
""" """
def __init__(self, name=None, category=None, endpoint=None, url=None): def __init__(self, name=None, category=None, endpoint=None, url=None):
if url is None:
url = '/admin'
super(AdminIndexView, self).__init__(name or babel.lazy_gettext('Home'), super(AdminIndexView, self).__init__(name or babel.lazy_gettext('Home'),
category, category,
endpoint or 'admin', endpoint or 'admin',
url, url or '/admin',
'static') 'static')
@expose() @expose()
...@@ -342,12 +339,25 @@ class Admin(object): ...@@ -342,12 +339,25 @@ class Admin(object):
name = 'Admin' name = 'Admin'
self.name = name self.name = name
if index_view:
endpoint = index_view.endpoint
url = index_view.url
else:
if endpoint is None:
endpoint = 'admin'
if url is None: if url is None:
url = '/admin' url = '/admin'
index_view = AdminIndexView(endpoint=endpoint, url=url)
self.endpoint = endpoint
self.url = url self.url = url
self.subdomain = subdomain self.subdomain = subdomain
self.index_view = index_view
self.endpoint = endpoint # Add predefined index view
self.add_view(index_view)
# Localizations # Localizations
self.locale_selector_func = None self.locale_selector_func = None
...@@ -356,15 +366,6 @@ class Admin(object): ...@@ -356,15 +366,6 @@ class Admin(object):
if app: if app:
self._init_extension() self._init_extension()
# Index view
if index_view is None:
index_view = AdminIndexView(endpoint=self.endpoint, url=self.url)
self.index_view = index_view
# Add predefined index view
self.add_view(index_view)
def add_view(self, view): def add_view(self, view):
""" """
Add view to the collection. Add view to the collection.
......
...@@ -196,6 +196,15 @@ def test_delayed_init(): ...@@ -196,6 +196,15 @@ def test_delayed_init():
eq_(rv.data, 'Success!') eq_(rv.data, 'Success!')
def test_multi_instances_init():
app = Flask(__name__)
admin = base.Admin(app)
class ManageIndex(base.AdminIndexView):
pass
manage = base.Admin(app, index_view=ManageIndex(url='/manage', endpoint='manage'))
@raises(Exception) @raises(Exception)
def test_double_init(): def test_double_init():
app = Flask(__name__) app = Flask(__name__)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment