def wagtailuserbar(context, position='bottom-right'): # Find request object request = context['request'] # Don't render if user doesn't have permission to access the admin area if not request.user.has_perm('wagtailadmin.access_admin'): return '' # Only render if the context contains a variable referencing a saved page page = get_page_instance(context) if page is None: return '' # Dont render anything if the page has not been saved - i.e. a preview if page.pk is None: return '' try: revision_id = request.revision_id except AttributeError: revision_id = None if revision_id is None: items = [ AdminItem(), ExplorePageItem(Page.objects.get(id=page.id)), EditPageItem(Page.objects.get(id=page.id)), AddPageItem(Page.objects.get(id=page.id)), ] else: items = [ AdminItem(), ExplorePageItem(PageRevision.objects.get(id=revision_id).page), EditPageItem(PageRevision.objects.get(id=revision_id).page), AddPageItem(PageRevision.objects.get(id=revision_id).page), ApproveModerationEditPageItem( PageRevision.objects.get(id=revision_id)), RejectModerationEditPageItem( PageRevision.objects.get(id=revision_id)), ] for fn in hooks.get_hooks('construct_wagtail_userbar'): fn(request, items) # Render the items rendered_items = [item.render(request) for item in items] # Remove any unrendered items rendered_items = [item for item in rendered_items if item] # Render the userbar items return render_to_string( 'wagtailadmin/userbar/base.html', { 'request': request, 'items': rendered_items, 'position': position, 'page': page, 'revision_id': revision_id })
def for_moderation(request, revision_id): items = [ EditPageItem(PageRevision.objects.get(id=revision_id).page), AddPageItem(PageRevision.objects.get(id=revision_id).page), ApproveModerationEditPageItem( PageRevision.objects.get(id=revision_id)), RejectModerationEditPageItem(PageRevision.objects.get(id=revision_id)), ] # 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) # Render the items rendered_items = [item.render(request) for item in items] # Remove any unrendered items rendered_items = [item for item in rendered_items if item] # Render the edit bird return render(request, 'wagtailadmin/userbar/base.html', { 'items': rendered_items, })
def for_frontend(request, page_id): items = [ EditPageItem(Page.objects.get(id=page_id)), AddPageItem(Page.objects.get(id=page_id)), ] for fn in hooks.get_hooks('construct_wagtail_edit_bird'): fn(request, items) # Render the items rendered_items = [item.render(request) for item in items] # Remove any unrendered items rendered_items = [item for item in rendered_items if item] # Render the edit bird return render(request, 'wagtailadmin/userbar/base.html', { 'items': rendered_items, })