Merge branch 'karma-graphs' into 'master'
Create karma graph report page See merge request !7
This commit is contained in:
commit
82c1b1babd
|
@ -141,6 +141,13 @@ EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
||||||
EMAIL_FILE_PATH = BASE_DIR
|
EMAIL_FILE_PATH = BASE_DIR
|
||||||
|
|
||||||
|
|
||||||
|
# bootstrap3
|
||||||
|
BOOTSTRAP3 = {
|
||||||
|
'include_jquery': True,
|
||||||
|
'javascript_in_head': True,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# registration
|
# registration
|
||||||
LOGIN_REDIRECT_URL = reverse_lazy('index')
|
LOGIN_REDIRECT_URL = reverse_lazy('index')
|
||||||
ACCOUNT_ACTIVATION_DAYS = 7
|
ACCOUNT_ACTIVATION_DAYS = 7
|
||||||
|
|
|
@ -13,6 +13,7 @@ urlpatterns = patterns('',
|
||||||
url(r'^$', TemplateView.as_view(template_name='index.html'), name='home'),
|
url(r'^$', TemplateView.as_view(template_name='index.html'), name='home'),
|
||||||
|
|
||||||
url(r'^dispatch/', include('dispatch.urls')),
|
url(r'^dispatch/', include('dispatch.urls')),
|
||||||
|
url(r'^karma/', include('karma.urls')),
|
||||||
url(r'^markov/', include('markov.urls')),
|
url(r'^markov/', include('markov.urls')),
|
||||||
url(r'^races/', include('races.urls')),
|
url(r'^races/', include('races.urls')),
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,21 @@ class KarmaKey(models.Model):
|
||||||
return rank+1
|
return rank+1
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def history(self):
|
||||||
|
"""Determine the score for this karma entry at every delta."""
|
||||||
|
|
||||||
|
history = []
|
||||||
|
|
||||||
|
entries = KarmaLogEntry.objects.filter(key=self).order_by('created')
|
||||||
|
for entry in entries:
|
||||||
|
timestamp = entry.created
|
||||||
|
delta = entry.delta
|
||||||
|
score = KarmaLogEntry.objects.filter(key=self).filter(created__lte=entry.created).aggregate(models.Sum('delta'))['delta__sum']
|
||||||
|
|
||||||
|
history.append((timestamp, delta, score))
|
||||||
|
|
||||||
|
return history
|
||||||
|
|
||||||
|
|
||||||
class KarmaLogEntryManager(models.Manager):
|
class KarmaLogEntryManager(models.Manager):
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
{% block extra_media %}
|
||||||
|
<script type="text/javascript" src="{% get_static_prefix %}js/Chart.min.js"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}karma: {{ entry.key }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h3>{{ entry.key }}</h3>
|
||||||
|
<canvas id="karma_history"></canvas>
|
||||||
|
<script type="text/javascript">
|
||||||
|
Chart.defaults.global.responsive = true;
|
||||||
|
Chart.defaults.global.maintainAspectRatio = true;
|
||||||
|
var ctx = $("#karma_history").get(0).getContext("2d");
|
||||||
|
var data = {
|
||||||
|
labels: [{% for x in entry.history %}"{{ x.0 }}", {% endfor %}],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "{{ entry.key }}",
|
||||||
|
fillColor: "rgba(220,220,220,0.2)",
|
||||||
|
strokeColor: "rgba(220,220,220,1)",
|
||||||
|
pointColor: "rgba(220,220,220,1)",
|
||||||
|
pointStrokeColor: "#fff",
|
||||||
|
pointHighlightFill: "#fff",
|
||||||
|
pointHighlightStroke: "rgba(220,220,220,1)",
|
||||||
|
data: [{% for x in entry.history %}{{ x.2 }}, {% endfor %}]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
var myLineChart = new Chart(ctx).Line(data);
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,11 @@
|
||||||
|
"""URL patterns for the karma views."""
|
||||||
|
|
||||||
|
from django.conf.urls import patterns, url
|
||||||
|
from django.views.generic import TemplateView
|
||||||
|
|
||||||
|
from karma.views import key_detail
|
||||||
|
|
||||||
|
urlpatterns = patterns('races.views',
|
||||||
|
url(r'^$', TemplateView.as_view(template_name='index.html'), name='karma_index'),
|
||||||
|
url(r'^key/(?P<karma_key>.+)/', key_detail, name='karma_key_detail'),
|
||||||
|
)
|
|
@ -0,0 +1,17 @@
|
||||||
|
"""Present karma data."""
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from django.shortcuts import get_object_or_404, render
|
||||||
|
|
||||||
|
from karma.models import KarmaKey
|
||||||
|
|
||||||
|
log = logging.getLogger('karma.views')
|
||||||
|
|
||||||
|
|
||||||
|
def key_detail(request, karma_key):
|
||||||
|
"""Display the requested karma key."""
|
||||||
|
|
||||||
|
entry = get_object_or_404(KarmaKey, key=karma_key)
|
||||||
|
|
||||||
|
return render(request, 'karma/karma_key.html', {'entry': entry})
|
File diff suppressed because one or more lines are too long
|
@ -72,6 +72,7 @@
|
||||||
</div>
|
</div>
|
||||||
{% block navbar_menu %}
|
{% block navbar_menu %}
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a href="{% url 'karma_index' %}">Karma</a></li>
|
||||||
<li><a href="{% url 'markov_index' %}">Markov</a></li>
|
<li><a href="{% url 'markov_index' %}">Markov</a></li>
|
||||||
<li><a href="{% url 'races_index' %}">Races</a></li>
|
<li><a href="{% url 'races_index' %}">Races</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue