X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f17e5ab1f46f52b071f71c799dfa4c755f7c407e..cf9abb6f419c407ad53036d24c36b50105adeeff:/apps/catalogue/views.py?ds=sidebyside diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index d9ae442aa..1180ab2fd 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -164,7 +164,7 @@ def tagged_object_list(request, 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]) @@ -262,6 +262,8 @@ def book_stub_detail(request, slug): def book_text(request, slug): book = get_object_or_404(models.Book, slug=slug) + if not book.has_html_file(): + raise Http404 book_themes = {} for fragment in book.fragments.all(): for theme in fragment.tags.filter(category='theme'): @@ -324,7 +326,7 @@ def _sqlite_word_starts_with(name, prefix): return Q(**kwargs) -if settings.DATABASE_ENGINE == 'sqlite3': +if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3': _word_starts_with = _sqlite_word_starts_with @@ -357,6 +359,10 @@ def _get_result_type(match): 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.