kopia lustrzana https://github.com/wagtail/wagtail
Move homepage site summary items into their respective apps
rodzic
0a6550d1bd
commit
78c164524d
|
@ -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))
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
Ładowanie…
Reference in New Issue