fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix <cite> in autocomplete
[wolnelektury.git]
/
src
/
api
/
handlers.py
diff --git
a/src/api/handlers.py
b/src/api/handlers.py
index
eb56e20
..
f7b3086
100644
(file)
--- a/
src/api/handlers.py
+++ b/
src/api/handlers.py
@@
-19,6
+19,7
@@
from picture.models import Picture
from picture.forms import PictureImportForm
from stats.utils import piwik_track
from picture.forms import PictureImportForm
from stats.utils import piwik_track
+from wolnelektury.utils import re_escape
from . import emitters # Register our emitters
from . import emitters # Register our emitters
@@
-144,6
+145,10
@@
class BookDetails(object):
return MEDIA_BASE + default.backend.get_thumbnail(
book.cover, "139x193").url if book.cover else ''
return MEDIA_BASE + default.backend.get_thumbnail(
book.cover, "139x193").url if book.cover else ''
+ @classmethod
+ def simple_thumb(cls, book):
+ return MEDIA_BASE + book.cover_api_thumb.url if book.cover_api_thumb else ''
+
@classmethod
def cover_source_image(cls, book):
url = book.cover_source()
@classmethod
def cover_source_image(cls, book):
url = book.cover_source()
@@
-157,7
+162,7
@@
class BookDetailHandler(BaseHandler, BookDetails):
"""
allowed_methods = ['GET']
fields = ['title', 'parent', 'children'] + Book.formats + [
"""
allowed_methods = ['GET']
fields = ['title', 'parent', 'children'] + Book.formats + [
- 'media', 'url', 'cover', 'cover_thumb', 'fragment_data'] + [
+ 'media', 'url', 'cover', 'cover_thumb', '
simple_thumb', '
fragment_data'] + [
category_plural[c] for c in book_tag_categories]
@piwik_track
category_plural[c] for c in book_tag_categories]
@piwik_track
@@
-176,7
+181,7
@@
class AnonymousBooksHandler(AnonymousBaseHandler, BookDetails):
"""
allowed_methods = ('GET',)
model = Book
"""
allowed_methods = ('GET',)
model = Book
- fields = book_tag_categories + ['href', 'title', 'url', 'cover', 'cover_thumb', 'slug']
+ fields = book_tag_categories + ['href', 'title', 'url', 'cover', 'cover_thumb', 'slug'
, 'simple_thumb'
]
@classmethod
def genres(cls, book):
@classmethod
def genres(cls, book):
@@
-300,7
+305,7
@@
class QuerySetProxy(models.QuerySet):
class FilterBooksHandler(AnonymousBooksHandler):
fields = book_tag_categories + [
class FilterBooksHandler(AnonymousBooksHandler):
fields = book_tag_categories + [
- 'href', 'title', 'url', 'cover', 'cover_thumb', 'key', 'cover_source_image']
+ 'href', 'title', 'url', 'cover', 'cover_thumb', '
simple_thumb', 'slug', '
key', 'cover_source_image']
def read(self, request):
key_sep = '$'
def read(self, request):
key_sep = '$'
@@
-334,6
+339,7
@@
class FilterBooksHandler(AnonymousBooksHandler):
if (search_string is not None) and len(search_string) < 3:
search_string = None
if search_string:
if (search_string is not None) and len(search_string) < 3:
search_string = None
if search_string:
+ search_string = re_escape(search_string)
books_author = books.filter(cached_author__iregex='\m' + search_string)
books_title = books.filter(title__iregex='\m' + search_string)
books_title = books_title.exclude(id__in=list(books_author.values_list('id', flat=True)))
books_author = books.filter(cached_author__iregex='\m' + search_string)
books_title = books.filter(title__iregex='\m' + search_string)
books_title = books_title.exclude(id__in=list(books_author.values_list('id', flat=True)))
@@
-521,6
+527,13
@@
class TagsHandler(BaseHandler, TagDetails):
tags = Tag.objects.filter(category=category_sng).exclude(items=None).order_by('slug')
tags = Tag.objects.filter(category=category_sng).exclude(items=None).order_by('slug')
+ book_only = request.GET.get('book_only') == 'true'
+ picture_only = request.GET.get('picture_only') == 'true'
+ if book_only:
+ tags = tags.filter(for_books=True)
+ if picture_only:
+ tags = tags.filter(for_pictures=True)
+
if after:
tags = tags.filter(slug__gt=after)
if before:
if after:
tags = tags.filter(slug__gt=after)
if before: