X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/7f0caf88dd3aac2e4d5bb4ee064137e03ecd4f03..aae232dcf008ab39db553bc1b20573fa00e3b191:/apps/api/handlers.py?ds=sidebyside diff --git a/apps/api/handlers.py b/apps/api/handlers.py index da5c0ed27..c118d95df 100644 --- a/apps/api/handlers.py +++ b/apps/api/handlers.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. - +# from datetime import datetime, timedelta import json from urlparse import urljoin @@ -10,6 +10,7 @@ from django.conf import settings from django.contrib.sites.models import Site from django.core.cache import get_cache from django.core.urlresolvers import reverse +from django.utils.timezone import utc from piston.handler import AnonymousBaseHandler, BaseHandler from piston.utils import rc from sorl.thumbnail import default @@ -18,8 +19,10 @@ from api.helpers import timestamp from api.models import Deleted from catalogue.forms import BookImportForm from catalogue.models import Book, Tag, BookMedia, Fragment, Collection +from catalogue.utils import related_tag_name from picture.models import Picture from picture.forms import PictureImportForm +from wolnelektury.utils import tz from stats.utils import piwik_track @@ -244,7 +247,7 @@ def _tags_getter(category): def _tag_getter(category): @classmethod def get_tag(cls, book): - return ", ".join(t[0] for t in book.related_info()['tags'].get(category, [])) + return ", ".join(related_tag_name(t) for t in book.related_info()['tags'].get(category, [])) return get_tag for plural, singular in category_singular.items(): setattr(BookDetails, plural, _tags_getter(singular)) @@ -465,7 +468,7 @@ class CatalogueHandler(BaseHandler): """ # set to five minutes ago, to avoid concurrency issues if t is None: - t = datetime.now() - timedelta(seconds=settings.API_WAIT) + t = datetime.utcnow().replace(tzinfo=utc) - timedelta(seconds=settings.API_WAIT) # set to whole second in case DB supports something smaller return t.replace(microsecond=0) @@ -536,7 +539,7 @@ class CatalogueHandler(BaseHandler): @classmethod def book_changes(cls, request=None, since=0, until=None, fields=None): - since = datetime.fromtimestamp(int(since)) + since = datetime.fromtimestamp(int(since), tz) until = cls.until(until) changes = { @@ -602,7 +605,7 @@ class CatalogueHandler(BaseHandler): @classmethod def tag_changes(cls, request=None, since=0, until=None, fields=None, categories=None): - since = datetime.fromtimestamp(int(since)) + since = datetime.fromtimestamp(int(since), tz) until = cls.until(until) changes = {