X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ab8ffbde2df33d9c699e029ba613d2b014ba44b8..82c3054bcdeb000aa9782da80d644070797b5cbe:/apps/picture/templatetags/picture_tags.py diff --git a/apps/picture/templatetags/picture_tags.py b/apps/picture/templatetags/picture_tags.py index 826f6aaf5..02d80b005 100644 --- a/apps/picture/templatetags/picture_tags.py +++ b/apps/picture/templatetags/picture_tags.py @@ -1,32 +1,28 @@ +# -*- 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. +# +import logging +from random import randint from django import template -from django.template import Node, Variable, Template, Context +from django.core.urlresolvers import reverse +from django.utils.cache import add_never_cache_headers +import sorl.thumbnail.default +from ssify import ssi_variable from catalogue.utils import split_tags -from itertools import chain from ..engine import CustomCroppingEngine -import sorl.thumbnail.default -import logging +from ..models import Picture + 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(), + 'main_link': reverse('picture_viewer', args=[picture.slug]), 'request': context.get('request'), 'tags': split_tags(picture.tags), }) @@ -47,7 +43,8 @@ def area_thumbnail_url(area, geometry): return [[coords[0][0], coords[0][1] + h/2 - w/2], [coords[1][0], coords[1][1] - h/2 + w/2, ]] - # so much for sorl extensibility. # what to do about this? + # 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) @@ -64,7 +61,15 @@ def area_thumbnail_url(area, geometry): sorl.thumbnail.default.engine = _engine return th.url - - +@ssi_variable(register, patch_response=[add_never_cache_headers]) +def picture_random_picture(request, exclude_ids, unless=None): + if unless: + return None + queryset = Picture.objects.exclude(pk__in=exclude_ids).exclude(image_file='') + count = queryset.count() + if count: + return queryset[randint(0, count - 1)].pk + else: + return None