d13b9f67a8ab252d2e246dcfbe24410db9f3e935
[wolnelektury.git] / apps / stats / templatetags / stats.py
1 # -*- coding: utf-8 -*-
2 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
3 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
4 #
5 import feedparser
6 import datetime
7
8 from django import template
9
10 from catalogue.models import Book, BookMedia
11
12
13 register = template.Library()
14
15 #~ 
16 #~ @register.tag(name='captureas')
17 #~ def do_captureas(parser, token):
18     #~ try:
19         #~ tag_name, args = token.contents.split(None, 1)
20     #~ except ValueError:
21         #~ raise template.TemplateSyntaxError("'captureas' node requires a variable name.")
22     #~ nodelist = parser.parse(('endcaptureas',))
23     #~ parser.delete_first_token()
24     #~ return CaptureasNode(nodelist, args)
25
26 class StatsNode(template.Node):
27     def __init__(self, value, varname=None):
28         self.value = value
29         self.varname = varname
30
31     def render(self, context):
32         print self.varname
33         if self.varname:
34             context[self.varname] = self.value
35             return ''
36         else:
37             return self.value
38
39
40
41 #~ @register.tag
42 #~ def count_books_all(*args, **kwargs):
43     #~ print args, kwargs
44     #~ return StatsNode(Book.objects.all().count())
45
46 @register.tag
47 def count_books_nonempty(parser, token):
48     try:
49         tag_name, args = token.contents.split(None, 1)
50     except ValueError:
51         args = None
52     return StatsNode(Book.objects.exclude(html_file='').count(), args)
53
54 #~ @register.simple_tag
55 #~ def count_books_empty():
56     #~ return Book.objects.exclude(html_file='').count()
57 #~ 
58 #~ @register.simple_tag
59 #~ def count_books_root():
60     #~ return Book.objects.filter(parent=None).count()