Add a register_admin_urls hook so that subapps of wagtailadmin can register their urlpatterns with wagtailadmin, avoiding the need for them to be defined in the project's urlconf

This commit is contained in:
Matt Westcott 2014-04-25 17:23:58 +01:00
parent c6cc149627
commit 797418f549
9 changed files with 86 additions and 15 deletions

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)