Move homepage site summary items into their respective apps

pull/1114/head
Matt Westcott 2015-03-30 11:27:09 +01:00
rodzic 0a6550d1bd
commit 78c164524d
6 zmienionych plików z 83 dodań i 77 usunięć

Wyświetl plik

@ -0,0 +1,49 @@
from django.template import RequestContext
from django.template.loader import render_to_string
from wagtail.wagtailcore import hooks
from wagtail.wagtailcore.models import Page
class SummaryItem(object):
order = 100
def __init__(self, request):
self.request = request
def get_context(self):
return {}
def render(self):
return render_to_string(self.template, self.get_context(),
RequestContext(self.request))
class PagesSummaryItem(SummaryItem):
order = 100
template = 'wagtailadmin/home/site_summary_pages.html'
def get_context(self):
return {
'total_pages': Page.objects.count() - 1, # subtract 1 because the root node is not a real page
}
@hooks.register('construct_homepage_summary_items')
def add_pages_summary_item(request, items):
items.append(PagesSummaryItem(request))
class SiteSummaryPanel(object):
name = 'site_summary'
order = 100
def __init__(self, request):
self.request = request
self.summary_items = []
for fn in hooks.get_hooks('construct_homepage_summary_items'):
fn(request, self.summary_items)
def render(self):
return render_to_string('wagtailadmin/home/site_summary.html', {
'summary_items': sorted(self.summary_items, key=lambda p: p.order),
}, RequestContext(self.request))

Wyświetl plik

@ -4,87 +4,12 @@ from django.template import RequestContext
from django.template.loader import render_to_string
from wagtail.wagtailcore import hooks
from wagtail.wagtailcore.models import Page, PageRevision, UserPagePermissionsProxy
from wagtail.wagtailcore.models import PageRevision, UserPagePermissionsProxy
from wagtail.wagtaildocs.models import Document
from wagtail.wagtailimages.models import get_image_model
# Items for the site summary panel
class SummaryItem(object):
order = 100
def __init__(self, request):
self.request = request
def get_context(self):
return {}
def render(self):
return render_to_string(self.template, self.get_context(),
RequestContext(self.request))
class PagesSummaryItem(SummaryItem):
order = 100
template = 'wagtailadmin/home/site_summary_pages.html'
def get_context(self):
return {
'total_pages': Page.objects.count() - 1, # subtract 1 because the root node is not a real page
}
@hooks.register('construct_homepage_summary_items')
def add_pages_summary_item(request, items):
items.append(PagesSummaryItem(request))
class ImagesSummaryItem(SummaryItem):
order = 200
template = 'wagtailadmin/home/site_summary_images.html'
def get_context(self):
return {
'total_images': get_image_model().objects.count(),
}
@hooks.register('construct_homepage_summary_items')
def add_images_summary_item(request, items):
items.append(ImagesSummaryItem(request))
class DocumentsSummaryItem(SummaryItem):
order = 300
template = 'wagtailadmin/home/site_summary_documents.html'
def get_context(self):
return {
'total_docs': Document.objects.count(),
}
@hooks.register('construct_homepage_summary_items')
def add_documents_summary_item(request, items):
items.append(DocumentsSummaryItem(request))
from wagtail.wagtailadmin.site_summary import SiteSummaryPanel
# Panels for the homepage
class SiteSummaryPanel(object):
name = 'site_summary'
order = 100
def __init__(self, request):
self.request = request
self.summary_items = []
for fn in hooks.get_hooks('construct_homepage_summary_items'):
fn(request, self.summary_items)
def render(self):
return render_to_string('wagtailadmin/home/site_summary.html', {
'summary_items': sorted(self.summary_items, key=lambda p: p.order),
}, RequestContext(self.request))
class PagesForModerationPanel(object):
name = 'pages_for_moderation'
order = 200

Wyświetl plik

@ -8,8 +8,10 @@ from django.contrib.auth.models import Permission
from wagtail.wagtailcore import hooks
from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailadmin.site_summary import SummaryItem
from wagtail.wagtaildocs import admin_urls
from wagtail.wagtaildocs.models import Document
from wagtail.wagtaildocs.rich_text import DocumentLinkHandler
@ -59,3 +61,17 @@ def register_permissions():
@hooks.register('register_rich_text_link_handler')
def register_document_link_handler():
return ('document', DocumentLinkHandler)
class DocumentsSummaryItem(SummaryItem):
order = 300
template = 'wagtaildocs/homepage/site_summary_documents.html'
def get_context(self):
return {
'total_docs': Document.objects.count(),
}
@hooks.register('construct_homepage_summary_items')
def add_documents_summary_item(request, items):
items.append(DocumentsSummaryItem(request))

Wyświetl plik

@ -9,8 +9,10 @@ from django.contrib.contenttypes.models import ContentType
from wagtail.wagtailcore import hooks
from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailadmin.site_summary import SummaryItem
from wagtail.wagtailimages import admin_urls, image_operations
from wagtail.wagtailimages.models import get_image_model
from wagtail.wagtailimages.rich_text import ImageEmbedHandler
@ -114,3 +116,17 @@ def register_image_operations():
@hooks.register('register_rich_text_embed_handler')
def register_image_embed_handler():
return ('image', ImageEmbedHandler)
class ImagesSummaryItem(SummaryItem):
order = 200
template = 'wagtailimages/homepage/site_summary_images.html'
def get_context(self):
return {
'total_images': get_image_model().objects.count(),
}
@hooks.register('construct_homepage_summary_items')
def add_images_summary_item(request, items):
items.append(ImagesSummaryItem(request))