1 """Template tags and filters for Zinnia's admin"""
2 from django.template import Library
3 from django.contrib.comments.models import Comment
4 from django.contrib.contenttypes.models import ContentType
5
6 from zinnia.models import Entry
7 from zinnia.models import Author
8 from zinnia.models import Category
9 from zinnia.managers import DRAFT
10 from zinnia.managers import tags_published
11
12 register = Library()
13
14
15 @register.inclusion_tag('zinnia/tags/dummy.html')
16 -def get_draft_entries(
17 number=5, template='admin/zinnia/widgets/_draft_entries.html'):
21
22
23 @register.inclusion_tag('zinnia/tags/dummy.html')
24 -def get_content_stats(
25 template='admin/zinnia/widgets/_content_stats.html'):
26 """Return statistics of the contents"""
27 content_type = ContentType.objects.get_for_model(Entry)
28
29 discussions = Comment.objects.filter(
30 is_public=True, content_type=content_type)
31
32 return {'template': template,
33 'entries': Entry.published.count(),
34 'categories': Category.objects.count(),
35 'tags': tags_published().count(),
36 'authors': Author.published.count(),
37 'comments': discussions.filter(flags=None).count(),
38 'pingbacks': discussions.filter(flags__flag='pingback').count(),
39 'trackbacks': discussions.filter(flags__flag='trackback').count(),
40 'rejects': Comment.objects.filter(
41 is_public=False, content_type=content_type).count(),
42 }
43