From e40b2c0fbdbd932be5f9d0550a16b6652de0d38d Mon Sep 17 00:00:00 2001 From: Rob Hudson Date: Thu, 18 Sep 2008 13:43:13 -0700 Subject: I noticed the template_rendered signal from the test suite also passed context, so I'm including the context with each template in the Template panel. This should make the designers happy. --- debug_toolbar/panels/template.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'debug_toolbar/panels/template.py') diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index f1cf65b..f02b673 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -32,11 +32,11 @@ class TemplateDebugPanel(DebugPanel): def __init__(self, request): super(TemplateDebugPanel, self).__init__(request) - self.templates_used = [] - template_rendered.connect(self._storeRenderedTemplates) + self.templates = [] + template_rendered.connect(self._storeTemplateInfo) - def _storeRenderedTemplates(self, sender, **kwargs): - self.templates_used.append(kwargs['template']) + def _storeTemplateInfo(self, sender, **kwargs): + self.templates.append(kwargs) def title(self): return 'Templates' @@ -45,12 +45,22 @@ class TemplateDebugPanel(DebugPanel): return '' def content(self): - templates = [ - (t.name, t.origin and t.origin.name or 'No origin') - for t in self.templates_used - ] + template_context = [] + for i, d in enumerate(self.templates): + info = {} + # Clean up some info about templates + t = d.get('template', None) + if t.origin and t.origin.name: + t.origin_name = t.origin.name + else: + t.origin_name = 'No origin' + info['template'] = t + # Clean up context for better readability + c = d.get('context', None) + info['context'] = '\n'.join([_d.__repr__() for _d in c.dicts]) + template_context.append(info) context = { - 'templates': templates, + 'templates': template_context, 'template_dirs': settings.TEMPLATE_DIRS, } return render_to_string('debug_toolbar/panels/templates.html', context) -- cgit v1.2.3 From 43bb25c874f765800076285e76b2b0ba1460a597 Mon Sep 17 00:00:00 2001 From: Nowell Strite Date: Fri, 19 Sep 2008 01:17:16 -0400 Subject: Fixed template panel to skip over debug_toolbar templates. Fixed a bug in template context output where rendering would hang while trying to autoescape the context variable output. --- debug_toolbar/panels/template.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'debug_toolbar/panels/template.py') diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index f02b673..bda6630 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -50,6 +50,9 @@ class TemplateDebugPanel(DebugPanel): info = {} # Clean up some info about templates t = d.get('template', None) + # Skip templates that we are generating through the debug toolbar. + if t.name.startswith('debug_toolbar/'): + continue if t.origin and t.origin.name: t.origin_name = t.origin.name else: -- cgit v1.2.3 From 8e124b0a129ab351ec6cae30d8358709d4c1430b Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sat, 20 Sep 2008 20:30:45 +0100 Subject: Use pformat for template contexts, which makes it more readable --- debug_toolbar/panels/template.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'debug_toolbar/panels/template.py') diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index bda6630..e08f220 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -5,6 +5,8 @@ from django.template.loader import render_to_string from django.test.signals import template_rendered from debug_toolbar.panels import DebugPanel +from pprint import pformat + # Code taken and adapted from Simon Willison and Django Snippets: # http://www.djangosnippets.org/snippets/766/ @@ -60,7 +62,7 @@ class TemplateDebugPanel(DebugPanel): info['template'] = t # Clean up context for better readability c = d.get('context', None) - info['context'] = '\n'.join([_d.__repr__() for _d in c.dicts]) + info['context'] = '\n'.join([pformat(_d) for _d in c.dicts]) template_context.append(info) context = { 'templates': template_context, -- cgit v1.2.3 From ee810109f7dfb8c70278b5c447b4604bccc987a0 Mon Sep 17 00:00:00 2001 From: Rob Hudson Date: Sun, 21 Sep 2008 22:35:15 -0700 Subject: Refactoring middleware and panels so panels have more explicit middleware-like methods to be more clear when panel processing happens. --- debug_toolbar/panels/template.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'debug_toolbar/panels/template.py') diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index e08f220..eb20079 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -1,3 +1,4 @@ +from pprint import pformat from django.conf import settings from django.core.signals import request_started from django.dispatch import Signal @@ -5,8 +6,6 @@ from django.template.loader import render_to_string from django.test.signals import template_rendered from debug_toolbar.panels import DebugPanel -from pprint import pformat - # Code taken and adapted from Simon Willison and Django Snippets: # http://www.djangosnippets.org/snippets/766/ @@ -32,8 +31,7 @@ class TemplateDebugPanel(DebugPanel): name = 'Template' has_content = True - def __init__(self, request): - super(TemplateDebugPanel, self).__init__(request) + def __init__(self): self.templates = [] template_rendered.connect(self._storeTemplateInfo) -- cgit v1.2.3 From d74431411b5c390379bcac89a60628a26365d8c9 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 24 Sep 2008 12:40:02 +0200 Subject: Added context processors to TemplateDebugPanel --- debug_toolbar/panels/template.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'debug_toolbar/panels/template.py') diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index eb20079..9cab618 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -4,6 +4,7 @@ from django.core.signals import request_started from django.dispatch import Signal from django.template.loader import render_to_string from django.test.signals import template_rendered +from django.template.context import get_standard_processors from debug_toolbar.panels import DebugPanel # Code taken and adapted from Simon Willison and Django Snippets: @@ -44,6 +45,11 @@ class TemplateDebugPanel(DebugPanel): def url(self): return '' + def process_request(self, request): + self.context_processors = dict( + [("%s.%s" % (k.__module__, k.__name__), pformat(k(request))) for k in get_standard_processors()] + ) + def content(self): template_context = [] for i, d in enumerate(self.templates): @@ -65,5 +71,6 @@ class TemplateDebugPanel(DebugPanel): context = { 'templates': template_context, 'template_dirs': settings.TEMPLATE_DIRS, + 'context_processors': self.context_processors, } return render_to_string('debug_toolbar/panels/templates.html', context) -- cgit v1.2.3