Merge branch 'master' of git.incorporeal.org:bss/dr.botzo
This commit is contained in:
commit
70032dc42b
|
@ -0,0 +1,12 @@
|
||||||
|
"""Serializers for the karma objects."""
|
||||||
|
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
from karma.models import KarmaKey
|
||||||
|
|
||||||
|
|
||||||
|
class KarmaKeySerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = KarmaKey
|
||||||
|
fields = ('id', 'key', 'score', 'rank')
|
|
@ -0,0 +1,44 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
{% block extra_media %}
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/t/bs/jqc-1.12.0,dt-1.10.11/datatables.min.css"/>
|
||||||
|
<script type="text/javascript" src="https://cdn.datatables.net/t/bs/jqc-1.12.0,dt-1.10.11/datatables.min.js"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}karma{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div style="width: 75%; margin-left: auto; margin-right: auto;">
|
||||||
|
<table id="karma" class="display table table-striped table-bordered" cellspacing="0" width="100%">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Key</th>
|
||||||
|
<th>Score</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Key</th>
|
||||||
|
<th>Score</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
<tbody>
|
||||||
|
{% for entry in entries %}
|
||||||
|
<tr>
|
||||||
|
<td><a href="{% url 'karma_key_detail' entry.key %}">{{ entry.key }}</a></td>
|
||||||
|
<td>{{ entry.score }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#karma').DataTable( {
|
||||||
|
"order": [[ 1, "desc" ]],
|
||||||
|
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
|
@ -1,11 +1,16 @@
|
||||||
"""URL patterns for the karma views."""
|
"""URL patterns for the karma views."""
|
||||||
|
|
||||||
from django.conf.urls import patterns, url
|
from django.conf.urls import patterns, url, include
|
||||||
from django.views.generic import TemplateView
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from karma.views import key_detail
|
from karma.views import key_detail, index, KarmaKeyViewSet
|
||||||
|
|
||||||
|
router = DefaultRouter()
|
||||||
|
router.register(r'keys', KarmaKeyViewSet)
|
||||||
|
|
||||||
urlpatterns = patterns('races.views',
|
urlpatterns = patterns('races.views',
|
||||||
url(r'^$', TemplateView.as_view(template_name='index.html'), name='karma_index'),
|
url(r'^$', index, name='karma_index'),
|
||||||
url(r'^key/(?P<karma_key>.+)/', key_detail, name='karma_key_detail'),
|
url(r'^key/(?P<karma_key>.+)/', key_detail, name='karma_key_detail'),
|
||||||
|
|
||||||
|
url(r'^api/', include(router.urls)),
|
||||||
)
|
)
|
||||||
|
|
|
@ -3,15 +3,33 @@
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import get_object_or_404, render
|
||||||
|
from rest_framework import viewsets
|
||||||
|
|
||||||
from karma.models import KarmaKey
|
from karma.models import KarmaKey
|
||||||
|
from karma.serializers import KarmaKeySerializer
|
||||||
|
|
||||||
log = logging.getLogger('karma.views')
|
log = logging.getLogger('karma.views')
|
||||||
|
|
||||||
|
|
||||||
|
def index(request):
|
||||||
|
"""Display all karma keys."""
|
||||||
|
|
||||||
|
entries = KarmaKey.objects.all().order_by('key')
|
||||||
|
|
||||||
|
return render(request, 'karma/index.html', {'entries': entries})
|
||||||
|
|
||||||
|
|
||||||
def key_detail(request, karma_key):
|
def key_detail(request, karma_key):
|
||||||
"""Display the requested karma key."""
|
"""Display the requested karma key."""
|
||||||
|
|
||||||
entry = get_object_or_404(KarmaKey, key=karma_key.lower())
|
entry = get_object_or_404(KarmaKey, key=karma_key.lower())
|
||||||
|
|
||||||
return render(request, 'karma/karma_key.html', {'entry': entry, 'entry_history': entry.history(mode='date')})
|
return render(request, 'karma/karma_key.html', {'entry': entry, 'entry_history': entry.history(mode='date')})
|
||||||
|
|
||||||
|
|
||||||
|
class KarmaKeyViewSet(viewsets.ReadOnlyModelViewSet):
|
||||||
|
|
||||||
|
"""Provide list and detail actions for karma keys."""
|
||||||
|
|
||||||
|
queryset = KarmaKey.objects.all()
|
||||||
|
serializer_class = KarmaKeySerializer
|
||||||
|
|
Loading…
Reference in New Issue