opds: added search, moved to separate app
[wolnelektury.git] / apps / catalogue / views.py
index 088d0ee..1180ab2 100644 (file)
@@ -164,7 +164,7 @@ def tagged_object_list(request, tags=''):
             objects = fragments
     else:
         # get relevant books and their tags
             objects = fragments
     else:
         # get relevant books and their tags
-        objects = models.Book.tagged.with_all(tags).order_by()
+        objects = models.Book.tagged.with_all(tags)
         if not shelf_is_set:
             # eliminate descendants
             l_tags = models.Tag.objects.filter(category='book', slug__in=[book.book_tag_slug() for book in objects])
         if not shelf_is_set:
             # eliminate descendants
             l_tags = models.Tag.objects.filter(category='book', slug__in=[book.book_tag_slug() for book in objects])
@@ -326,7 +326,7 @@ def _sqlite_word_starts_with(name, prefix):
     return Q(**kwargs)
 
 
     return Q(**kwargs)
 
 
-if settings.DATABASE_ENGINE == 'sqlite3':
+if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3':
     _word_starts_with = _sqlite_word_starts_with
 
 
     _word_starts_with = _sqlite_word_starts_with
 
 
@@ -359,6 +359,10 @@ def _get_result_type(match):
     return type
 
 
     return type
 
 
+def books_starting_with(prefix):
+    prefix = prefix.lower()
+    return models.Book.objects.filter(_word_starts_with('title', prefix))
+
 
 def find_best_matches(query, user=None):
     """ Finds a Book, Tag or Bookstub best matching a query.
 
 def find_best_matches(query, user=None):
     """ Finds a Book, Tag or Bookstub best matching a query.