X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/d2199704c75d29ba98e0f92d27cb63743183e906..ec20d8aad93b7e0ddfa964f68e5ea31424e8aa4e:/apps/picture/templatetags/picture_tags.py diff --git a/apps/picture/templatetags/picture_tags.py b/apps/picture/templatetags/picture_tags.py index 38e7a6638..7e464fa02 100644 --- a/apps/picture/templatetags/picture_tags.py +++ b/apps/picture/templatetags/picture_tags.py @@ -1,32 +1,22 @@ +# -*- 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 django import template -from django.template import Node, Variable, Template, Context from catalogue.utils import split_tags -from itertools import chain from ..engine import CustomCroppingEngine import sorl.thumbnail.default -import logging +import logging register = template.Library() cropper = CustomCroppingEngine() -@register.inclusion_tag('picture/picture_short.html', takes_context=True) -def picture_short(context, picture): - context.update({ - 'picture': picture, - 'main_link': picture.get_absolute_url(), - # 'related': picture.related_info(), - 'request': context.get('request'), - 'tags': split_tags(picture.tags), - }) - return context - @register.inclusion_tag('picture/picture_wide.html', takes_context=True) def picture_wide(context, picture): context.update({ 'picture': picture, 'main_link': picture.get_absolute_url(), - # 'related': picture.related_info(), 'request': context.get('request'), 'tags': split_tags(picture.tags), }) @@ -45,26 +35,23 @@ def area_thumbnail_url(area, geometry): [coords[1][0] - w/2 + h/2, coords[1][1]]] else: return [[coords[0][0], coords[0][1] + h/2 - w/2], - [coords[1][0], coords[1][1] - h/2 + w/2, ]] + [coords[1][0], coords[1][1] - h/2 + w/2, ]] - # so much for sorl extensibility. + # so much for sorl extensibility. # what to do about this? _engine = sorl.thumbnail.default.engine sorl.thumbnail.default.engine = cropper coords = to_square(area.area) - logging.debug("coords: %s, %s" % (unicode(coords), geometry)) + try: th = sorl.thumbnail.default.backend.get_thumbnail( area.picture.image_file, geometry, - crop="%dpx %dpx %dpx %dpx" % tuple(coords[0] + coords[1])) + crop="%dpx %dpx %dpx %dpx" % tuple(map(lambda d: max(0, d), tuple(coords[0] + coords[1])))) except Exception, e: logging.exception("Error creating a thumbnail for PictureArea") + return '' sorl.thumbnail.default.engine = _engine - - return th.url - - - + return th.url