fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor changes in paypal
[wolnelektury.git]
/
src
/
api
/
handlers.py
diff --git
a/src/api/handlers.py
b/src/api/handlers.py
index
c899976
..
ab1a44a
100644
(file)
--- a/
src/api/handlers.py
+++ b/
src/api/handlers.py
@@
-164,7
+164,8
@@
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', 'simple_thumb', 'simple_cover', 'fragment_data', 'preview'] + [
+ 'media', 'url', 'cover', 'cover_thumb', 'simple_thumb', 'simple_cover', 'fragment_data', 'audio_length',
+ 'preview'] + [
category_plural[c] for c in book_tag_categories]
@piwik_track
category_plural[c] for c in book_tag_categories]
@piwik_track
@@
-183,7
+184,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', 'simple_thumb']
+ fields = book_tag_categories + ['href', 'title', 'url', 'cover', 'cover_thumb', 'slug', 'simple_thumb'
, 'has_audio'
]
@classmethod
def genres(cls, book):
@classmethod
def genres(cls, book):
@@
-322,7
+323,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', 'simple_thumb', 'slug', 'key']
+ 'href', 'title', 'url', 'cover', 'cover_thumb', 'simple_thumb', '
has_audio', '
slug', 'key']
def parse_bool(self, s):
if s in ('true', 'false'):
def parse_bool(self, s):
if s in ('true', 'false'):
@@
-433,6
+434,7
@@
def add_file_getters():
for book_format in Book.formats:
setattr(BookDetails, book_format, _file_getter(book_format))
for book_format in Book.formats:
setattr(BookDetails, book_format, _file_getter(book_format))
+
add_file_getters()
add_file_getters()
@@
-624,7
+626,7
@@
class FragmentsHandler(BaseHandler, FragmentDetails):
"""
try:
"""
try:
- tags, ancestors = read_tags(tags, allowed=self.categories)
+ tags, ancestors = read_tags(tags,
request,
allowed=self.categories)
except ValueError:
return rc.NOT_FOUND
fragments = Fragment.tagged.with_all(tags).select_related('book')
except ValueError:
return rc.NOT_FOUND
fragments = Fragment.tagged.with_all(tags).select_related('book')
@@
-654,16
+656,18
@@
class PictureHandler(BaseHandler):
class UserDataHandler(BaseHandler):
model = BookUserData
class UserDataHandler(BaseHandler):
model = BookUserData
- fields = ('state',)
+ fields = ('state',
'username'
)
allowed_methods = ('GET', 'POST')
allowed_methods = ('GET', 'POST')
- def read(self, request, slug):
+ def read(self, request, slug=None):
+ if not request.user.is_authenticated():
+ return rc.FORBIDDEN
+ if slug is None:
+ return {'username': request.user.username}
try:
book = Book.objects.get(slug=slug)
except Book.DoesNotExist:
return rc.NOT_FOUND
try:
book = Book.objects.get(slug=slug)
except Book.DoesNotExist:
return rc.NOT_FOUND
- if not request.user.is_authenticated():
- return rc.FORBIDDEN
try:
data = BookUserData.objects.get(book=book, user=request.user)
except BookUserData.DoesNotExist:
try:
data = BookUserData.objects.get(book=book, user=request.user)
except BookUserData.DoesNotExist:
@@
-702,7
+706,8
@@
class UserShelfHandler(BookDetailHandler):
return rc.NOT_FOUND
after = request.GET.get('after')
count = int(request.GET.get('count', 50))
return rc.NOT_FOUND
after = request.GET.get('after')
count = int(request.GET.get('count', 50))
- ids = BookUserData.objects.filter(user=request.user, complete=state == 'complete').values_list('book_id', flat=True)
+ ids = BookUserData.objects.filter(user=request.user, complete=state == 'complete')\
+ .values_list('book_id', flat=True)
books = Book.objects.filter(id__in=list(ids)).distinct().order_by('slug')
if after:
books = books.filter(slug__gt=after)
books = Book.objects.filter(id__in=list(ids)).distinct().order_by('slug')
if after:
books = books.filter(slug__gt=after)