]> 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 9bed533b045f73e0385f32c934e5c780d3cc2b70..642cb433581d953dcd1fced549bd7a784ebd394d 100644 (file)
@@ -2,17 +2,27 @@ from django.shortcuts import render
 
 from random import randint
 
-from .models import Author, Work, Quote, QuoteTag
+from quotes.models import Author, Work, Quote, QuoteTag
+from quotes import search
+from quotes import tagcloud
+
+# create your views here.
+def index(request):
+    return render(request, 'quotes/index.html')
 
-# Create your views here.
 def onequote(request, quote_id):
     q = Quote.objects.get(id=quote_id)
-    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)
@@ -21,11 +31,13 @@ def tags(request, tag_id):
 
 def author(request, author_id):
     author = Author.objects.get(id=author_id)
+    author.incr_display()
     context = { 'author' : author }
     return render(request, 'quotes/author.html', context)
 
 def work(request, work_id):
     work = Work.objects.get(id=work_id)
+    work.incr_display()
     context = { 'work': work }
     return render(request, 'quotes/work.html', context)
 
@@ -33,3 +45,13 @@ def all(request):
     quotes = Quote.objects.all()
     context = { 'quotes' : quotes }
     return render(request, 'quotes/all.html', context)
+
+def searchpage(request):
+    results = {}
+    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)