plugins: add method to register manager urls (#7345)

This commit is contained in:
Frédéric Péters 2015-05-25 12:00:04 +02:00
parent 036c349e75
commit 650010b835
2 changed files with 19 additions and 1 deletions

View File

@ -16,9 +16,9 @@
from django.conf.urls import patterns, url, include
from .. import plugins
from . import views
urlpatterns = patterns('combo.views',
url(r'^$', views.homepage, name='combo-manager-homepage'),
url(r'^menu.json$', views.menu_json),
@ -58,3 +58,5 @@ urlpatterns = patterns('combo.views',
url(r'^assets/delete$', views.asset_delete, name='combo-manager-asset-delete'),
(r'^ckeditor/', include('ckeditor.urls')),
)
urlpatterns = plugins.register_plugins_manager_urls(urlpatterns)

View File

@ -55,6 +55,22 @@ def register_plugins_urls(urlpatterns):
post_patterns = patterns('', *post_urls)
return pre_patterns + urlpatterns + post_patterns
def register_plugins_manager_urls(urlpatterns):
pre_urls = []
post_urls = []
for plugin in apps.get_app_configs():
if hasattr(plugin, 'get_before_manager_urls'):
urls = plugin.get_before_manager_urls()
if urls:
pre_urls.append(url('^', include(urls)))
if hasattr(plugin, 'get_after_manager_urls'):
urls = plugin.get_after_manager_urls()
if urls:
post_urls.append(url('^', include(urls)))
pre_patterns = patterns('', *pre_urls)
post_patterns = patterns('', *post_urls)
return pre_patterns + urlpatterns + post_patterns
def register_plugins_apps(installed_apps):
installed_apps = tuple(installed_apps)
for plugin in get_plugins():