add to api: keyset pagination, recommended, newest
[wolnelektury.git] / src / wolnelektury / views.py
index c179280..c62c2e5 100644 (file)
@@ -21,11 +21,15 @@ from ajaxable.utils import placeholdized
 from catalogue.models import Book, Collection, Tag, Fragment
 from ssify import ssi_included
 
+from social.utils import get_or_choose_cite
+from wolnelektury.forms import RegistrationForm
+
 
 def main_page(request):
     ctx = {
         'last_published': Book.objects.exclude(cover_thumb='').filter(parent=None).order_by('-created_at')[:6],
-        'theme_books': []
+        'theme_books': [],
+        'cite': get_or_choose_cite(request),
     }
 
     # for category in ('author', 'epoch', 'genre', 'kind'):
@@ -35,10 +39,10 @@ def main_page(request):
     #         pass
 
     # FIXME: find this theme and books properly.
-    if Fragment.objects.count():
+    if Fragment.objects.exists():
         while True:
             ctx['theme'] = Tag.objects.filter(category='theme').order_by('?')[:1][0]
-            tf = Fragment.tagged.with_any([ctx['theme']]).order_by('?')[:100]
+            tf = Fragment.tagged.with_any([ctx['theme']]).select_related('book').order_by('?')[:100]
             if not tf:
                 continue
             ctx['theme_fragment'] = tf[0]
@@ -80,7 +84,7 @@ class LoginFormView(AjaxableFormView):
 
 
 class RegisterFormView(AjaxableFormView):
-    form_class = UserCreationForm
+    form_class = RegistrationForm
     template = "auth/register.html"
     placeholdize = True
     title = _('Register')
@@ -180,3 +184,11 @@ def latest_blog_posts(request, feed_url=None, posts_to_show=5):
 @ssi_included(use_lang=False)
 def widget(request):
     return render(request, 'widget.html')
+
+
+def exception_test(request):
+    msg = request.GET.get('msg')
+    if msg:
+        raise Exception('Exception test: %s' % msg)
+    else:
+        raise Exception('Exception test')
\ No newline at end of file