X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/276656dcc680e1a35103d310dea046152ddc3785..69191eddb9e4221d964a7e5b044ff7c5dfe38315:/apps/social/templatetags/social_tags.py diff --git a/apps/social/templatetags/social_tags.py b/apps/social/templatetags/social_tags.py index 1b26d91c4..e78f20f0a 100755 --- a/apps/social/templatetags/social_tags.py +++ b/apps/social/templatetags/social_tags.py @@ -3,8 +3,39 @@ # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from django import template -from social.utils import likes +from catalogue.models import Book +from social.models import Cite +from social.utils import likes, cites_for_tags register = template.Library() register.filter('likes', likes) + + +@register.inclusion_tag('social/cite_promo.html') +def cite_promo(ctx=None, fallback=False): + """Choose""" + if ctx is None: + cites = Cite.objects.all() + elif isinstance(ctx, Book): + cites = ctx.cite_set.all() + if not cites.exists(): + cites = cites_for_tags([ctx.book_tag()]) + else: + cites = cites_for_tags(ctx) + + return { + 'cite': cites.order_by('?')[0] if cites.exists() else None, + 'fallback': fallback, + 'ctx': ctx, + } + + +@register.inclusion_tag('social/shelf_tags.html', takes_context=True) +def shelf_tags(context, book): + user = context['request'].user + if not user.is_authenticated(): + tags = [] + else: + tags = book.tags.filter(category='set', user=user).exclude(name='') + return {'tags': tags}