ac49062decd2bb73e32842d825fdba814e385c15
1 from django
import template
2 from django
.utils
.safestring
import mark_safe
3 from django
.utils
.translation
import ugettext
as _
7 register
= template
.Library()
10 def vertical_bar(value
, max):
14 ratio
= float(value
) / float(max) * 100
16 left
, right
= '<span>'+str(value
)+'</span>', ''
18 left
, right
= ' ', '<span>'+str(value
)+'</span>'
19 s
= '<div class="barbg"><div class="bar" style="width: %s">%s</div>%s</div>' % (ratio
, left
, right
)
23 def format_diff(value
):
25 s
= '<img src="/media/better.png" title="+%s">' % value
27 s
= '<img src="/media/worse.png" title="%s">' % value
35 s
= '<script type="text/javascript" src="http://www.google.com/jsapi"></script>\n'
36 s
+= '<script type="text/javascript">\n'
37 s
+= 'google.load("visualization", "1", {"packages":["annotatedtimeline"]});\n'
38 s
+= 'google.setOnLoadCallback(drawChart);\n'
39 s
+= 'function drawChart() {\n'
40 s
+= 'var data = new google.visualization.DataTable();\n'
41 s
+= 'data.addColumn("date", "Date");\n'
42 s
+= 'data.addColumn("number", "Listeners");\n'
43 s
+= 'data.addColumn("string", "title1");\n'
44 s
+= 'data.addColumn("string", "text1");\n'
45 s
+= 'data.addRows([\n'
48 if 'episode' in r
and r
['episode']:
49 episode
= '"%s"' % r
['episode'].title
if r
['episode'].title
else '"Unnamed Episode"'
50 episode_
= '"released"'
53 episode_
= 'undefined'
55 s
+= '[new Date(%d, %d, %d), %d, %s, %s],\n' % (r
['date'].year
, r
['date'].month
-1, r
['date'].day
, r
['listeners'], episode
, episode_
)
58 s
+= 'var chart = new google.visualization.AnnotatedTimeLine(document.getElementById("chart_div"));\n'
59 s
+= 'chart.draw(data, {displayAnnotations: true});\n'
71 'chl=%s' % '|'.join(parts
.iterkeys()),
72 'chd=t:%s' % ','.join([ repr(x
) for x
in parts
.itervalues() ])
75 s
= '<img src="http://chart.apis.google.com/chart?%s"' % '&'.join(parts
)