limited stopwords + better search by author + remove descendant results
[wolnelektury.git] / src / wolnelektury / views.py
index 49f7b24..c62c2e5 100644 (file)
@@ -21,24 +21,28 @@ 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': [],
+        'cite': get_or_choose_cite(request),
     }
 
-    for category in ('author', 'epoch', 'genre', 'kind'):
-        try:
-            ctx[category] = Tag.objects.filter(category=category).order_by('?')[:1][0]
-        except IndexError:
-            pass
+    for category in ('author', 'epoch', 'genre', 'kind'):
+        try:
+            ctx[category] = Tag.objects.filter(category=category).order_by('?')[:1][0]
+        except IndexError:
+            pass
 
     # FIXME: find this theme and books properly.
-    ctx['theme_books'] = []
-    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