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."""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.views.generic import TemplateView
|
||||
from django.conf.urls import patterns, url, include
|
||||
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',
|
||||
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'^api/', include(router.urls)),
|
||||
)
|
||||
|
|
|
@ -3,15 +3,33 @@
|
|||
import logging
|
||||
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
from rest_framework import viewsets
|
||||
|
||||
from karma.models import KarmaKey
|
||||
from karma.serializers import KarmaKeySerializer
|
||||
|
||||
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):
|
||||
"""Display the requested karma key."""
|
||||
|
||||
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')})
|
||||
|
||||
|
||||
class KarmaKeyViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
|
||||
"""Provide list and detail actions for karma keys."""
|
||||
|
||||
queryset = KarmaKey.objects.all()
|
||||
serializer_class = KarmaKeySerializer
|
||||
|
|
Loading…
Reference in New Issue