Commit 1ce80769 authored by Michal Čihař's avatar Michal Čihař

HTML views for activity charts (issue #176)

parent 998828fe
......@@ -64,6 +64,7 @@
<li><a href="#changes">{% trans "Recent changes" %}</a></li>
<li><a href="#translators">{% trans "Most active translators" %}</a></li>
<li><a href="#suggesters">{% trans "Most active suggesters" %}</a></li>
<li><a href="{% url 'view_activity' %}">{% trans "Activity" %}</a></li>
<li><a href="#others">{% trans "Others" %}</a></li>
</ul>
......
{% load i18n %}
<h3>{% trans "Activity in last 30 days" %}</h3>
<img src="{{ monthly_url }}">
<h3>{% trans "Activity in last year" %}</h3>
<img src="{{ yearly_url }}">
......@@ -23,9 +23,11 @@ Charting library for Weblate.
from weblate.trans.models import Change, Project, SubProject, Translation
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponse
from cStringIO import StringIO
from django.utils.translation import ugettext as _
from django.core.urlresolvers import reverse
import cairo
import pycha.bar
......@@ -36,7 +38,7 @@ def render_activity(ticks, line):
'''
# Prepare cairo surface
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 800, 400)
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 800, 100)
# Data set
data = (
......@@ -50,7 +52,7 @@ def render_activity(ticks, line):
'ticks': ticks,
},
'y': {
'tickCount': 4,
'tickCount': 1,
}
},
'background': {
......@@ -169,3 +171,68 @@ def yearly_activity(request, project=None, subproject=None, lang=None):
# Render chart
return render_activity(ticks, line)
def view_activity(request, project=None, subproject=None, lang=None):
'''
Show html with activity charts.
'''
# Process parameters
project, subproject, translation = get_translation(
project,
subproject,
lang
)
if translation is not None:
kwargs = {
'project': project.slug,
'subproject': subproject.slug,
'lang': translation.language.code,
}
monthly_url = reverse(
'monthly_activity_translation',
kwargs=kwargs
)
yearly_url = reverse(
'yearly_activity_translation',
kwargs=kwargs
)
elif subproject is not None:
kwargs = {
'project': project.slug,
'subproject': subproject.slug,
}
monthly_url = reverse(
'monthly_activity_subproject',
kwargs=kwargs
)
yearly_url = reverse(
'yearly_activity_subproject',
kwargs=kwargs
)
elif project is not None:
kwargs = {
'project': project.slug,
}
monthly_url = reverse(
'monthly_activity_project',
kwargs=kwargs
)
yearly_url = reverse(
'yearly_activity_project',
kwargs=kwargs
)
else:
monthly_url = reverse(
'monthly_activity',
)
yearly_url = reverse(
'yearly_activity',
)
return render_to_response('js/activity.html', RequestContext(request, {
'yearly_url': yearly_url,
'monthly_url': monthly_url,
}))
......@@ -147,6 +147,11 @@ urlpatterns = patterns('',
url(r'^projects/(?P<project>[^/]*)/(?P<subproject>[^/]*)/(?P<lang>[^/]*)/upload/$', 'weblate.trans.views.upload_translation'),
url(r'^projects/(?P<project>[^/]*)/(?P<subproject>[^/]*)/(?P<lang>[^/]*)/auto/$', 'weblate.trans.views.auto_translation'),
url(r'^activity/html/$', 'weblate.trans.charts.view_activity', name='view_activity'),
url(r'^activity/html/(?P<project>[^/]*)/$', 'weblate.trans.charts.view_activity', name='view_activity_project'),
url(r'^activity/html/(?P<project>[^/]*)/(?P<subproject>[^/]*)/$', 'weblate.trans.charts.view_activity', name='view_activity_subproject'),
url(r'^activity/html/(?P<project>[^/]*)/(?P<subproject>[^/]*)/(?P<lang>[^/]*)/$', 'weblate.trans.charts.view_activity', name='view_activity_translation'),
url(r'^activity/month/$', 'weblate.trans.charts.monthly_activity', name='monthly_activity'),
url(r'^activity/month/(?P<project>[^/]*)/$', 'weblate.trans.charts.monthly_activity', name='monthly_activity_project'),
url(r'^activity/month/(?P<project>[^/]*)/(?P<subproject>[^/]*)/$', 'weblate.trans.charts.monthly_activity', name='monthly_activity_subproject'),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment