diff --git a/wagtail/tests/urls.py b/wagtail/tests/urls.py index d133a4bf8..d04c871a3 100644 --- a/wagtail/tests/urls.py +++ b/wagtail/tests/urls.py @@ -2,14 +2,8 @@ from django.conf.urls import patterns, include, url from wagtail.wagtailcore import urls as wagtail_urls from wagtail.wagtailadmin import urls as wagtailadmin_urls -from wagtail.wagtailimages import urls as wagtailimages_urls -from wagtail.wagtailembeds import urls as wagtailembeds_urls -from wagtail.wagtaildocs import admin_urls as wagtaildocs_admin_urls from wagtail.wagtaildocs import urls as wagtaildocs_urls -from wagtail.wagtailsnippets import urls as wagtailsnippets_urls -from wagtail.wagtailsearch.urls import frontend as wagtailsearch_frontend_urls, admin as wagtailsearch_admin_urls -from wagtail.wagtailusers import urls as wagtailusers_urls -from wagtail.wagtailredirects import urls as wagtailredirects_urls +from wagtail.wagtailsearch.urls import frontend as wagtailsearch_frontend_urls # Signal handlers from wagtail.wagtailsearch import register_signal_handlers as wagtailsearch_register_signal_handlers @@ -17,16 +11,8 @@ wagtailsearch_register_signal_handlers() urlpatterns = patterns('', - url(r'^admin/images/', include(wagtailimages_urls)), - url(r'^admin/embeds/', include(wagtailembeds_urls)), - url(r'^admin/documents/', include(wagtaildocs_admin_urls)), - url(r'^admin/snippets/', include(wagtailsnippets_urls)), - url(r'^admin/search/', include(wagtailsearch_admin_urls)), - url(r'^admin/users/', include(wagtailusers_urls)), - url(r'^admin/redirects/', include(wagtailredirects_urls)), url(r'^admin/', include(wagtailadmin_urls)), url(r'^search/', include(wagtailsearch_frontend_urls)), - url(r'^documents/', include(wagtaildocs_urls)), # For anything not caught by a more specific rule above, hand over to diff --git a/wagtail/wagtailadmin/urls.py b/wagtail/wagtailadmin/urls.py index 6c9f01c54..599da20e3 100644 --- a/wagtail/wagtailadmin/urls.py +++ b/wagtail/wagtailadmin/urls.py @@ -3,6 +3,7 @@ from django.conf import settings from wagtail.wagtailadmin.forms import LoginForm, PasswordResetForm from wagtail.wagtailadmin.views import account, chooser, home, pages, tags, userbar +from wagtail.wagtailadmin import hooks urlpatterns = [ url( @@ -89,3 +90,10 @@ urlpatterns += [ url(r'^userbar/(\d+)/$', userbar.for_frontend, name='wagtailadmin_userbar_frontend'), url(r'^userbar/moderation/(\d+)/$', userbar.for_moderation, name='wagtailadmin_userbar_moderation'), ] + + +# Import additional urlpatterns from any apps that define a register_admin_urls hook +for fn in hooks.get_hooks('register_admin_urls'): + urls = fn() + if urls: + urlpatterns += urls diff --git a/wagtail/wagtaildocs/wagtail_hooks.py b/wagtail/wagtaildocs/wagtail_hooks.py new file mode 100644 index 000000000..93d41c9a3 --- /dev/null +++ b/wagtail/wagtaildocs/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtaildocs import admin_urls + + +def register_admin_urls(): + return [ + url(r'^documents/', include(admin_urls)), + ] +hooks.register('register_admin_urls', register_admin_urls) diff --git a/wagtail/wagtailembeds/wagtail_hooks.py b/wagtail/wagtailembeds/wagtail_hooks.py new file mode 100644 index 000000000..0db627881 --- /dev/null +++ b/wagtail/wagtailembeds/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtailembeds import urls + + +def register_admin_urls(): + return [ + url(r'^embeds/', include(urls)), + ] +hooks.register('register_admin_urls', register_admin_urls) diff --git a/wagtail/wagtailimages/wagtail_hooks.py b/wagtail/wagtailimages/wagtail_hooks.py new file mode 100644 index 000000000..2309876a5 --- /dev/null +++ b/wagtail/wagtailimages/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtailimages import urls + + +def register_admin_urls(): + return [ + url(r'^images/', include(urls)), + ] +hooks.register('register_admin_urls', register_admin_urls) diff --git a/wagtail/wagtailredirects/wagtail_hooks.py b/wagtail/wagtailredirects/wagtail_hooks.py new file mode 100644 index 000000000..22ae97320 --- /dev/null +++ b/wagtail/wagtailredirects/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtailredirects import urls + + +def register_admin_urls(): + return [ + url(r'^redirects/', include(urls)), + ] +hooks.register('register_admin_urls', register_admin_urls) diff --git a/wagtail/wagtailsearch/wagtail_hooks.py b/wagtail/wagtailsearch/wagtail_hooks.py new file mode 100644 index 000000000..b8bbd2c06 --- /dev/null +++ b/wagtail/wagtailsearch/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtailsearch.urls import admin as admin_urls + + +def register_admin_urls(): + return [ + url(r'^search/', include(admin_urls)), + ] +hooks.register('register_admin_urls', register_admin_urls) diff --git a/wagtail/wagtailsnippets/wagtail_hooks.py b/wagtail/wagtailsnippets/wagtail_hooks.py new file mode 100644 index 000000000..460cf41dc --- /dev/null +++ b/wagtail/wagtailsnippets/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtailsnippets import urls + + +def register_admin_urls(): + return [ + url(r'^snippets/', include(urls)), + ] +hooks.register('register_admin_urls', register_admin_urls) diff --git a/wagtail/wagtailusers/wagtail_hooks.py b/wagtail/wagtailusers/wagtail_hooks.py new file mode 100644 index 000000000..add9afb2d --- /dev/null +++ b/wagtail/wagtailusers/wagtail_hooks.py @@ -0,0 +1,11 @@ +from django.conf.urls import include, url + +from wagtail.wagtailadmin import hooks +from wagtail.wagtailusers import urls + + +def register_admin_urls(): + return [ + url(r'^users/', include(urls)), + ] +hooks.register('register_admin_urls', register_admin_urls)