X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/d9d4177c5f384c55b3f3445c660632780cdfbd83..3c26965045e8881acd4d5de8c195e4aa61b95ed1:/utils.py diff --git a/utils.py b/utils.py index 6fc2cff..57f949e 100644 --- a/utils.py +++ b/utils.py @@ -1,6 +1,8 @@ from django.db import models from django.contrib.contenttypes.models import ContentType from django.core.paginator import Paginator, EmptyPage +from django.template import Context +from django.template.loader_tags import ExtendsNode, ConstantIncludeNode class ContentTypeLimiter(object): @@ -103,3 +105,20 @@ def paginate(objects, per_page=None, page_number=1): objects = page.object_list return paginator, page, objects + + +LOADED_TEMPLATE_ATTR = '_philo_loaded_template' +BLANK_CONTEXT = Context() + + +def get_extended(self): + return self.get_parent(BLANK_CONTEXT) + + +def get_included(self): + return self.template + + +# We ignore the IncludeNode because it will never work in a blank context. +setattr(ExtendsNode, LOADED_TEMPLATE_ATTR, property(get_extended)) +setattr(ConstantIncludeNode, LOADED_TEMPLATE_ATTR, property(get_included)) \ No newline at end of file