X-Git-Url: https://git.mdrn.pl/django-migdal.git/blobdiff_plain/734cd58d3f12c5397b42c1ae122c947500386014..HEAD:/migdal/templatetags/migdal_tags.py diff --git a/migdal/templatetags/migdal_tags.py b/migdal/templatetags/migdal_tags.py index c1b824c..1668e33 100644 --- a/migdal/templatetags/migdal_tags.py +++ b/migdal/templatetags/migdal_tags.py @@ -2,16 +2,25 @@ # This file is part of PrawoKultury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # +from django.shortcuts import get_object_or_404 from django_comments_xtd.models import XtdComment -from django.contrib import comments +import django_comments as comments +import django from django import template from migdal import app_settings from migdal.models import Category, Entry -from django.utils.translation import ugettext_lazy as _ register = template.Library() +if django.VERSION < (1, 8): + # See https://docs.djangoproject.com/en/2.2/releases/1.8/#rendering-templates-loaded-by-get-template-with-a-context + context_for_get_template = template.Context +else: + context_for_get_template = lambda x: x + + + @register.simple_tag(takes_context=True) def entry_begin(context, entry, detail=False): t = template.loader.select_template(( @@ -23,7 +32,7 @@ def entry_begin(context, entry, detail=False): 'object': entry, 'detail': detail, } - return t.render(template.Context(context)) + return t.render(context_for_get_template(context)) @register.simple_tag(takes_context=True) @@ -36,7 +45,7 @@ def entry_short(context, entry): 'request': context['request'], 'object': entry, } - return t.render(template.Context(context)) + return t.render(context_for_get_template(context)) @register.simple_tag(takes_context=True) @@ -50,23 +59,22 @@ def entry_promobox(context, entry, counter): 'object': entry, 'counter': counter, } - return t.render(template.Context(context)) + return t.render(context_for_get_template(context)) @register.inclusion_tag('migdal/categories.html', takes_context=True) def categories(context, taxonomy): context = { 'request': context['request'], - 'object_list': Category.objects.filter(taxonomy=taxonomy - ).exclude(entry__isnull=True) + 'object_list': Category.objects.filter(taxonomy=taxonomy).exclude(entry__isnull=True) } return context @register.inclusion_tag('migdal/last_comments.html') def last_comments(limit=app_settings.LAST_COMMENTS): - return {'object_list': - XtdComment.objects.filter(is_public=True, is_removed=False).order_by('-submit_date')[:limit]} + return { + 'object_list': XtdComment.objects.filter(is_public=True, is_removed=False).order_by('-submit_date')[:limit]} @register.inclusion_tag(['comments/form.html']) @@ -75,3 +83,9 @@ def entry_comment_form(entry): 'form': comments.get_form()(entry), 'next': entry.get_absolute_url(), } + + +@register.simple_tag +def entry_url(slug, lang='pl'): + entry = get_object_or_404(Entry, **{'slug_%s' % lang: slug}) + return entry.get_absolute_url()