X-Git-Url: https://git.mdrn.pl/django-migdal.git/blobdiff_plain/77ef9ccee8e4c8290d2b07f837c43244de92ccdf..HEAD:/migdal/templatetags/migdal_tags.py diff --git a/migdal/templatetags/migdal_tags.py b/migdal/templatetags/migdal_tags.py index f370f97..1668e33 100644 --- a/migdal/templatetags/migdal_tags.py +++ b/migdal/templatetags/migdal_tags.py @@ -2,15 +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 import django_comments as comments +import django from django import template from migdal import app_settings -from migdal.models import Category +from migdal.models import Category, Entry 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(( @@ -22,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) @@ -35,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) @@ -49,7 +59,7 @@ 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) @@ -73,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()