X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/83ed4687677954c6411b0ac9e9bdfc9f303251e0..b0fadf2591f3af957c1c8e0307d0bcef9e9f8538:/src/search/views.py diff --git a/src/search/views.py b/src/search/views.py index e06b1cc48..e5eb3a274 100644 --- a/src/search/views.py +++ b/src/search/views.py @@ -85,15 +85,19 @@ def hint(request, mozhint=False, param='term'): for author in authors[:limit] ] if len(data) < limit: - data += [ - { - 'label': b.title, - 'author': b.author_unicode(), - 'id': b.id, - 'url': b.get_absolute_url() - } - for b in Book.objects.filter(findable=True, title__iregex='\m' + prefix)[:limit-len(data)] - ] + for b in Book.objects.filter(findable=True, title__iregex='\m' + prefix)[:limit-len(data)]: + author_str = b.author_unicode() + translator = b.translator() + if translator: + author_str += ' (tłum. ' + translator + ')' + data.append( + { + 'label': b.title, + 'author': author_str, + 'id': b.id, + 'url': b.get_absolute_url() + } + ) if mozhint: data = [ @@ -189,9 +193,9 @@ def main(request): 'genre': genre, }, 'tags': { - 'epoch': Tag.objects.filter(category='epoch'), - 'genre': Tag.objects.filter(category='genre'), - 'kind': Tag.objects.filter(category='kind'), + 'epoch': Tag.objects.filter(category='epoch', for_books=True), + 'genre': Tag.objects.filter(category='genre', for_books=True), + 'kind': Tag.objects.filter(category='kind', for_books=True), }, }) @@ -227,11 +231,11 @@ def search_books(query, lang=None, only_audio=False, only_synchro=False, epoch=N def ensure_exists(r): try: - r.book + if not r.book: + return False except Book.DoesNotExist: return False - print(lang, r.book.language) if lang and r.book.language != lang: return False if only_audio and not r.book.has_mp3_file(): @@ -278,7 +282,8 @@ def search_pictures(query, epoch=None, kind=None, genre=None): def ensure_exists(r): try: - return r.picture + if not r.picture: + return False except Picture.DoesNotExist: return False @@ -289,6 +294,8 @@ def search_pictures(query, epoch=None, kind=None, genre=None): if genre and not r.picture.tags.filter(category='genre', slug=genre).exists(): return False + return True + results = [r for r in results if ensure_exists(r)] return results