X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/640c22a3277a1483410fbff1696cf25881c2daad..7c8f6fe9ddb0285e0b7c80bc0ff8814304ac2f6e:/apps/social/templatetags/social_tags.py?ds=inline diff --git a/apps/social/templatetags/social_tags.py b/apps/social/templatetags/social_tags.py index 29a43098b..889160200 100755 --- a/apps/social/templatetags/social_tags.py +++ b/apps/social/templatetags/social_tags.py @@ -12,9 +12,9 @@ register = template.Library() register.filter('likes', likes) -@register.inclusion_tag('social/cite_promo.html', takes_context=True) -def cite_promo(context, ctx=None, fallback=False): - """Choose""" +@register.assignment_tag(takes_context=True) +def choose_cite(context, ctx=None): + """Choose a cite for main page, for book or for set of tags.""" try: request = context['request'] assert request.user.is_staff @@ -29,10 +29,21 @@ def cite_promo(context, ctx=None, fallback=False): cites = cites_for_tags([ctx.book_tag()]) else: cites = cites_for_tags(ctx) - cite = cites.order_by('?')[0] if cites.exists() else None + cite = cites.order_by('-sticky', '?')[0] if cites.exists() else None + return cite + +@register.inclusion_tag('social/cite_promo.html') +def render_cite(cite): return { 'cite': cite, + } + + +@register.inclusion_tag('social/cite_promo.html', takes_context=True) +def cite_promo(context, ctx=None, fallback=False): + return { + 'cite': choose_cite(context, ctx), 'fallback': fallback, 'ctx': ctx, }