plugins: INSTALLED_APPS and MIDDLEWARE_CLASSES are tuples (#6911)

This commit is contained in:
Thomas NOËL 2015-04-06 23:35:25 +02:00
parent e776c8b8ba
commit c7b37e48a4
1 changed files with 8 additions and 14 deletions

View File

@ -55,28 +55,22 @@ def register_plugins_urls(urlpatterns):
return pre_patterns + urlpatterns + post_patterns
def register_plugins_apps(installed_apps):
installed_apps = list(installed_apps)
installed_apps = tuple(installed_apps)
for plugin in get_plugins():
if hasattr(plugin, 'get_apps'):
apps = plugin.get_apps()
for app in apps:
if app not in installed_apps:
installed_apps.append(app)
installed_apps += tuple(app for app in plugin.get_apps()
if app not in installed_apps)
return installed_apps
def register_plugins_middleware(middlewares):
middlewares = list(middlewares)
middlewares = tuple(middlewares)
for plugin in get_plugins():
if hasattr(plugin, 'get_before_middleware'):
pre_middleware = plugin.get_before_middleware()
for m in reversed(pre_middleware):
if m not in middlewares:
middlewares.insert(0, m)
middlewares = tuple(m for m in plugin.get_before_middleware()
if m not in middlewares) + middlewares
if hasattr(plugin, 'get_after_middleware'):
post_middleware = plugin.get_after_middleware()
for m in post_middlewares:
if m not in middlewares:
middlewares.append(m)
middlewares += tuple(m for m in plugin.get_after_middleware()
if m not in middlewares)
return middlewares
def get_extra_manager_actions():