]> gitweb.fperrin.net Git - djsite.git/blobdiff - quotes/views.py
Fix the random page to not assume 1-based, no gap indexes
[djsite.git] / quotes / views.py
index 2171062cf781702aa881dcd7c49feca9826a8f79..642cb433581d953dcd1fced549bd7a784ebd394d 100644 (file)
@@ -3,21 +3,26 @@ from django.shortcuts import render
 from random import randint
 
 from quotes.models import Author, Work, Quote, QuoteTag
-import quotes.search as search
+from quotes import search
+from quotes import tagcloud
 
-# Create your views here.
+# create your views here.
 def index(request):
     return render(request, 'quotes/index.html')
 
 def onequote(request, quote_id):
     q = Quote.objects.get(id=quote_id)
-    q.incr_display()
-    context = { 'quote' : q }
-    return render(request, 'quotes/onequote.html', context)
+    return _onequote(request, q)
 
 def random(request):
     count = Quote.objects.count()
-    return onequote(request, randint(1, count))
+    q = Quote.objects.all()[randint(0, count-1)]
+    return _onequote(request, q)
+
+def _onequote(request, q):
+    q.incr_display()
+    context = { 'quote' : q }
+    return render(request, 'quotes/onequote.html', context)
 
 def tags(request, tag_id):
     tag = QuoteTag.objects.get(id=tag_id)
@@ -46,3 +51,7 @@ def searchpage(request):
     if 'q' in request.POST:
         results = search.search(request.POST['q'])
     return render(request, 'quotes/search.html', results)
+
+def cloud(request):
+    clouddata = tagcloud.build_cloud()
+    return render(request, 'quotes/cloud.html', clouddata)