Merge branch 'karma-graphs' into 'master'

Create karma graph report page



See merge request !7
This commit is contained in:
Brian S. Stephan 2016-03-30 17:12:04 -05:00
commit 82c1b1babd
8 changed files with 97 additions and 0 deletions

View File

@ -141,6 +141,13 @@ EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = BASE_DIR
# bootstrap3
BOOTSTRAP3 = {
'include_jquery': True,
'javascript_in_head': True,
}
# registration
LOGIN_REDIRECT_URL = reverse_lazy('index')
ACCOUNT_ACTIVATION_DAYS = 7

View File

@ -13,6 +13,7 @@ urlpatterns = patterns('',
url(r'^$', TemplateView.as_view(template_name='index.html'), name='home'),
url(r'^dispatch/', include('dispatch.urls')),
url(r'^karma/', include('karma.urls')),
url(r'^markov/', include('markov.urls')),
url(r'^races/', include('races.urls')),

View File

@ -52,6 +52,21 @@ class KarmaKey(models.Model):
return rank+1
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):

View File

@ -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 %}

11
dr_botzo/karma/urls.py Normal file
View File

@ -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'),
)

17
dr_botzo/karma/views.py Normal file
View File

@ -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})

11
dr_botzo/static/js/Chart.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -72,6 +72,7 @@
</div>
{% block navbar_menu %}
<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 'races_index' %}">Races</a></li>
</ul>