38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""Present karma data."""
|
|
import logging
|
|
|
|
from django.conf import settings
|
|
from django.core.exceptions import PermissionDenied
|
|
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(__name__)
|
|
|
|
|
|
def index(request):
|
|
"""Display all karma keys."""
|
|
if 'karma' not in settings.WEB_ENABLED_APPS:
|
|
raise PermissionDenied()
|
|
|
|
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."""
|
|
if 'karma' not in settings.WEB_ENABLED_APPS:
|
|
raise PermissionDenied()
|
|
|
|
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
|