From ee71fff1b8f114bd7b88f7bac4d89590d703dded Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Mon, 11 Aug 2014 20:39:00 +0100 Subject: [PATCH] Convert all remaining menu items to be globally-registered with an is_shown method --- .../contrib/wagtailstyleguide/wagtail_hooks.py | 8 +++----- wagtail/wagtaildocs/wagtail_hooks.py | 13 +++++++------ wagtail/wagtailforms/wagtail_hooks.py | 16 +++++++++------- wagtail/wagtailimages/wagtail_hooks.py | 12 ++++++++---- wagtail/wagtailredirects/wagtail_hooks.py | 15 ++++++++------- wagtail/wagtailsearch/wagtail_hooks.py | 15 ++++++++------- wagtail/wagtailsnippets/wagtail_hooks.py | 13 +++++++------ wagtail/wagtailusers/wagtail_hooks.py | 13 +++++++------ 8 files changed, 57 insertions(+), 48 deletions(-) diff --git a/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py b/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py index 6045772d0..5115150b1 100644 --- a/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py +++ b/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py @@ -15,8 +15,6 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - menu_items.append( - MenuItem(_('Styleguide'), urlresolvers.reverse('wagtailstyleguide'), classnames='icon icon-image', order=1000) - ) +@hooks.register('register_admin_menu_item') +def register_styleguide_menu_item(): + return MenuItem(_('Styleguide'), urlresolvers.reverse('wagtailstyleguide'), classnames='icon icon-image', order=1000) diff --git a/wagtail/wagtaildocs/wagtail_hooks.py b/wagtail/wagtaildocs/wagtail_hooks.py index 3852716ac..ca3bfd07a 100644 --- a/wagtail/wagtaildocs/wagtail_hooks.py +++ b/wagtail/wagtaildocs/wagtail_hooks.py @@ -17,12 +17,13 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - if request.user.has_perm('wagtaildocs.add_document'): - menu_items.append( - MenuItem(_('Documents'), urlresolvers.reverse('wagtaildocs_index'), classnames='icon icon-doc-full-inverse', order=400) - ) +class DocumentsMenuItem(MenuItem): + def is_shown(self, request): + return request.user.has_perm('wagtaildocs.add_document') + +@hooks.register('register_admin_menu_item') +def register_documents_menu_item(): + return DocumentsMenuItem(_('Documents'), urlresolvers.reverse('wagtaildocs_index'), classnames='icon icon-doc-full-inverse', order=400) @hooks.register('insert_editor_js') diff --git a/wagtail/wagtailforms/wagtail_hooks.py b/wagtail/wagtailforms/wagtail_hooks.py index 427c678ad..ffcf23f6a 100644 --- a/wagtail/wagtailforms/wagtail_hooks.py +++ b/wagtail/wagtailforms/wagtail_hooks.py @@ -15,13 +15,15 @@ def register_admin_urls(): url(r'^forms/', include(urls)), ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - # show this only if the user has permission to retrieve submissions for at least one form - if get_forms_for_user(request.user).exists(): - menu_items.append( - MenuItem(_('Forms'), urlresolvers.reverse('wagtailforms_index'), classnames='icon icon-form', order=700) - ) +class FormsMenuItem(MenuItem): + def is_shown(self, request): + # show this only if the user has permission to retrieve submissions for at least one form + return get_forms_for_user(request.user).exists() + +@hooks.register('register_admin_menu_item') +def register_forms_menu_item(): + return FormsMenuItem(_('Forms'), urlresolvers.reverse('wagtailforms_index'), classnames='icon icon-form', order=700) + @hooks.register('insert_editor_js') def editor_js(): diff --git a/wagtail/wagtailimages/wagtail_hooks.py b/wagtail/wagtailimages/wagtail_hooks.py index b4f2bac19..ee1e9cf97 100644 --- a/wagtail/wagtailimages/wagtail_hooks.py +++ b/wagtail/wagtailimages/wagtail_hooks.py @@ -59,10 +59,14 @@ def construct_main_menu(request, menu_items): if not OLD_STYLE_URLCONF_CHECK_PASSED: check_old_style_urlconf() - if request.user.has_perm('wagtailimages.add_image'): - menu_items.append( - MenuItem(_('Images'), urlresolvers.reverse('wagtailimages_index'), classnames='icon icon-image', order=300) - ) + +class ImagesMenuItem(MenuItem): + def is_shown(self, request): + return request.user.has_perm('wagtailimages.add_image') + +@hooks.register('register_admin_menu_item') +def register_images_menu_item(): + return ImagesMenuItem(_('Images'), urlresolvers.reverse('wagtailimages_index'), classnames='icon icon-image', order=300) @hooks.register('insert_editor_js') diff --git a/wagtail/wagtailredirects/wagtail_hooks.py b/wagtail/wagtailredirects/wagtail_hooks.py index 6da8a873a..e0f2333e3 100644 --- a/wagtail/wagtailredirects/wagtail_hooks.py +++ b/wagtail/wagtailredirects/wagtail_hooks.py @@ -15,10 +15,11 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - # TEMPORARY: Only show if the user is a superuser - if request.user.is_superuser: - menu_items.append( - MenuItem(_('Redirects'), urlresolvers.reverse('wagtailredirects_index'), classnames='icon icon-redirect', order=800) - ) +class RedirectsMenuItem(MenuItem): + def is_shown(self, request): + # TEMPORARY: Only show if the user is a superuser + return request.user.is_superuser + +@hooks.register('register_admin_menu_item') +def register_redirects_menu_item(): + return RedirectsMenuItem(_('Redirects'), urlresolvers.reverse('wagtailredirects_index'), classnames='icon icon-redirect', order=800) diff --git a/wagtail/wagtailsearch/wagtail_hooks.py b/wagtail/wagtailsearch/wagtail_hooks.py index d3d533036..4996f0284 100644 --- a/wagtail/wagtailsearch/wagtail_hooks.py +++ b/wagtail/wagtailsearch/wagtail_hooks.py @@ -15,10 +15,11 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - # TEMPORARY: Only show if the user is a superuser - if request.user.is_superuser: - menu_items.append( - MenuItem(_('Editors picks'), urlresolvers.reverse('wagtailsearch_editorspicks_index'), classnames='icon icon-pick', order=900) - ) +class EditorsPicksMenuItem(MenuItem): + def is_shown(self, request): + # TEMPORARY: Only show if the user is a superuser + return request.user.is_superuser + +@hooks.register('register_admin_menu_item') +def register_editors_picks_menu_item(): + return EditorsPicksMenuItem(_('Editors picks'), urlresolvers.reverse('wagtailsearch_editorspicks_index'), classnames='icon icon-pick', order=900) diff --git a/wagtail/wagtailsnippets/wagtail_hooks.py b/wagtail/wagtailsnippets/wagtail_hooks.py index d1ff104ff..06e0c5e56 100644 --- a/wagtail/wagtailsnippets/wagtail_hooks.py +++ b/wagtail/wagtailsnippets/wagtail_hooks.py @@ -18,12 +18,13 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - if user_can_edit_snippets(request.user): - menu_items.append( - MenuItem(_('Snippets'), urlresolvers.reverse('wagtailsnippets_index'), classnames='icon icon-snippet', order=500) - ) +class SnippetsMenuItem(MenuItem): + def is_shown(self, request): + return user_can_edit_snippets(request.user) + +@hooks.register('register_admin_menu_item') +def register_snippets_menu_item(): + return SnippetsMenuItem(_('Snippets'), urlresolvers.reverse('wagtailsnippets_index'), classnames='icon icon-snippet', order=500) @hooks.register('insert_editor_js') diff --git a/wagtail/wagtailusers/wagtail_hooks.py b/wagtail/wagtailusers/wagtail_hooks.py index fe048a4a0..8a22aafe9 100644 --- a/wagtail/wagtailusers/wagtail_hooks.py +++ b/wagtail/wagtailusers/wagtail_hooks.py @@ -15,9 +15,10 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - if request.user.has_module_perms('auth'): - menu_items.append( - MenuItem(_('Users'), urlresolvers.reverse('wagtailusers_index'), classnames='icon icon-user', order=600) - ) +class UsersMenuItem(MenuItem): + def is_shown(self, request): + return request.user.has_module_perms('auth') + +@hooks.register('register_admin_menu_item') +def register_users_menu_item(): + return UsersMenuItem(_('Users'), urlresolvers.reverse('wagtailusers_index'), classnames='icon icon-user', order=600)