Merge branch 'zerolab-update-hook-names'

pull/1170/head
Matt Westcott 2015-04-09 14:13:23 +01:00
commit 4c03e39362
4 zmienionych plików z 43 dodań i 6 usunięć

Wyświetl plik

@ -42,6 +42,7 @@ Changelog
* Added hook `construct_homepage_summary_items` for customising the site summary panel on the admin homepage * Added hook `construct_homepage_summary_items` for customising the site summary panel on the admin homepage
* No longer automatically tries to use Celery for sending notification emails * No longer automatically tries to use Celery for sending notification emails
* Added "Add child page" button to admin userbar (Eric Drechsel) * Added "Add child page" button to admin userbar (Eric Drechsel)
* Renamed the `construct_wagtail_edit_bird` hook to `construct_wagtail_userbar`
* Fix: Prevent logout on changing password when SessionAuthenticationMiddleware is in use * Fix: Prevent logout on changing password when SessionAuthenticationMiddleware is in use

Wyświetl plik

@ -46,9 +46,15 @@ The available hooks are:
return HttpResponse("<h1>bad googlebot no cookie</h1>") return HttpResponse("<h1>bad googlebot no cookie</h1>")
.. _construct_wagtail_edit_bird: .. _construct_wagtail_userbar:
``construct_wagtail_edit_bird`` .. versionadded:: 0.3
.. versionchanged:: 1.0
The hook was renamed from ``construct_wagtail_edit_bird``
``construct_wagtail_userbar``
Add or remove items from the wagtail userbar. Add, edit, and moderation tools are provided by default. The callable passed into the hook must take the ``request`` object and a list of menu objects, ``items``. The menu item objects must have a ``render`` method which can take a ``request`` object and return the HTML string representing the menu item. See the userbar templates and menu item classes for more information. Add or remove items from the wagtail userbar. Add, edit, and moderation tools are provided by default. The callable passed into the hook must take the ``request`` object and a list of menu objects, ``items``. The menu item objects must have a ``render`` method which can take a ``request`` object and return the HTML string representing the menu item. See the userbar templates and menu item classes for more information.
.. code-block:: python .. code-block:: python
@ -60,7 +66,7 @@ The available hooks are:
return '<li><a href="http://cuteoverload.com/tag/puppehs/" ' \ return '<li><a href="http://cuteoverload.com/tag/puppehs/" ' \
+ 'target="_parent" class="action icon icon-wagtail">Puppies!</a></li>' + 'target="_parent" class="action icon icon-wagtail">Puppies!</a></li>'
@hooks.register('construct_wagtail_edit_bird') @hooks.register('construct_wagtail_userbar')
def add_puppy_link_item(request, items): def add_puppy_link_item(request, items):
return items.append( UserbarPuppyLinkItem() ) return items.append( UserbarPuppyLinkItem() )

Wyświetl plik

@ -87,6 +87,8 @@ Admin
* Added cache-control headers to all admin views. This allows Varnish/Squid/CDN to run on vanilla settings in front of a Wagtail site * Added cache-control headers to all admin views. This allows Varnish/Squid/CDN to run on vanilla settings in front of a Wagtail site
* Date / time pickers now consistently use times without seconds, to prevent Javascript behaviour glitches when focusing / unfocusing fields * Date / time pickers now consistently use times without seconds, to prevent Javascript behaviour glitches when focusing / unfocusing fields
* Added hook ``construct_homepage_summary_items`` for customising the site summary panel on the admin homepage * Added hook ``construct_homepage_summary_items`` for customising the site summary panel on the admin homepage
* Renamed the ``construct_wagtail_edit_bird`` hook to ``construct_wagtail_userbar``
Project template Project template
@ -292,3 +294,11 @@ Wagtail organises panels into three tabs: 'Content', 'Promote' and 'Settings'. D
ObjectList(BlogPage.promote_panels, heading='Promote'), ObjectList(BlogPage.promote_panels, heading='Promote'),
ObjectList(BlogPage.settings_panels, heading='Settings', classname="settings"), ObjectList(BlogPage.settings_panels, heading='Settings', classname="settings"),
]) ])
``construct_wagtail_edit_bird`` hook has been renamed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Previously you could customize the Wagtail userbar using the ``construct_wagtail_edit_bird`` hook.
The hook has been renamed to ``construct_wagtail_userbar``.
The old hook is now deprecated; all existing ``construct_wagtail_edit_bird`` declarations should be updated to the new hook.

Wyświetl plik

@ -1,3 +1,5 @@
import warnings
from django.shortcuts import render from django.shortcuts import render
from django.contrib.auth.decorators import permission_required from django.contrib.auth.decorators import permission_required
@ -5,6 +7,8 @@ from wagtail.wagtailadmin.userbar import EditPageItem, AddPageItem, ApproveModer
from wagtail.wagtailcore import hooks from wagtail.wagtailcore import hooks
from wagtail.wagtailcore.models import Page, PageRevision from wagtail.wagtailcore.models import Page, PageRevision
from wagtail.utils.deprecation import RemovedInWagtail11Warning
@permission_required('wagtailadmin.access_admin', raise_exception=True) @permission_required('wagtailadmin.access_admin', raise_exception=True)
def for_frontend(request, page_id): def for_frontend(request, page_id):
@ -13,7 +17,10 @@ def for_frontend(request, page_id):
AddPageItem(Page.objects.get(id=page_id)), AddPageItem(Page.objects.get(id=page_id)),
] ]
for fn in hooks.get_hooks('construct_wagtail_edit_bird'): # TODO: Remove in 1.1 release
run_deprecated_edit_bird_hook(request, items)
for fn in hooks.get_hooks('construct_wagtail_userbar'):
fn(request, items) fn(request, items)
# Render the items # Render the items
@ -37,7 +44,10 @@ def for_moderation(request, revision_id):
RejectModerationEditPageItem(PageRevision.objects.get(id=revision_id)), RejectModerationEditPageItem(PageRevision.objects.get(id=revision_id)),
] ]
for fn in hooks.get_hooks('construct_wagtail_edit_bird'): # TODO: Remove in 1.1 release
run_deprecated_edit_bird_hook(request, items)
for fn in hooks.get_hooks('construct_wagtail_userbar'):
fn(request, items) fn(request, items)
# Render the items # Render the items
@ -50,3 +60,13 @@ def for_moderation(request, revision_id):
return render(request, 'wagtailadmin/userbar/base.html', { return render(request, 'wagtailadmin/userbar/base.html', {
'items': rendered_items, 'items': rendered_items,
}) })
def run_deprecated_edit_bird_hook(request, items):
for fn in hooks.get_hooks('construct_wagtail_edit_bird'):
fn(request, items)
warnings.warn(
"The 'construct_wagtail_edit_bird' hook has been renamed to 'construct_wagtail_userbar'."
"Please update function '%s' in '%s'." % (fn.__name__, fn.__module__), RemovedInWagtail11Warning
)