Refactor wagtailuserbar logic - no need to split it between templatetags and views

This commit is contained in:
Matt Westcott 2014-04-02 17:26:45 +01:00
parent cc78aef748
commit 6694b30bea
2 changed files with 14 additions and 24 deletions

View file

@ -1,8 +1,8 @@
import warnings
from django import template
from django.template.loader import render_to_string
from wagtail.wagtailadmin.views import userbar
from wagtail.wagtailcore.models import Page
register = template.Library()
@ -22,11 +22,20 @@ def wagtailuserbar(context, css_path=None):
if not request.user.has_perm('wagtailadmin.access_admin'):
return ''
# Find page object
# Only render if the context contains a 'self' variable referencing a saved page
if 'self' in context and isinstance(context['self'], Page) and context['self'].id is not None:
pass
else:
return ''
# Render edit bird
return userbar.render_edit_frame(request, context) or ''
try:
revision_id = request.revision_id
except AttributeError:
revision_id = None
# Render the frame to contain the userbar items
return render_to_string('wagtailadmin/userbar/frame.html', {
'request': request,
'page': context,
'revision_id': revision_id
})

View file

@ -1,28 +1,9 @@
from django.conf import settings
from django.shortcuts import render, redirect
from django.template.loader import render_to_string
from django.contrib import messages
from django.contrib.auth.forms import SetPasswordForm
from django.contrib.auth.decorators import permission_required
from django.utils.translation import ugettext as _
from django.shortcuts import render
from wagtail.wagtailadmin.userbar import EditPageItem, AddPageItem, ApproveModerationEditPageItem, RejectModerationEditPageItem
from wagtail.wagtailadmin import hooks
from wagtail.wagtailcore.models import Page, PageRevision
def render_edit_frame(request, context):
try:
revision_id = request.revision_id
except:
revision_id = None
# Render the frame to contain the userbar items
return render_to_string('wagtailadmin/userbar/frame.html', {
'request': request,
'page': context,
'revision_id': revision_id
})
def for_frontend(request, page_id):
items = [
EditPageItem(Page.objects.get(id=page_id)),