diff options
Diffstat (limited to 'debug_toolbar/panels/template.py')
| -rw-r--r-- | debug_toolbar/panels/template.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py index d620a38..d0ab6cc 100644 --- a/debug_toolbar/panels/template.py +++ b/debug_toolbar/panels/template.py @@ -7,6 +7,7 @@ from django.template.context import get_standard_processors from django.template.loader import render_to_string from django.test.signals import template_rendered from django.utils.translation import ugettext_lazy as _ +from debug_toolbar.middleware import DebugToolbarMiddleware from debug_toolbar.panels import DebugPanel # Code taken and adapted from Simon Willison and Django Snippets: @@ -40,15 +41,15 @@ class TemplateDebugPanel(DebugPanel): """ name = 'Template' has_content = True - + def __init__(self, *args, **kwargs): super(self.__class__, self).__init__(*args, **kwargs) self.templates = [] template_rendered.connect(self._store_template_info) - + def _store_template_info(self, sender, **kwargs): context_data = kwargs['context'] - + context_list = [] for context_layer in context_data.dicts: temp_layer = {} @@ -74,22 +75,22 @@ class TemplateDebugPanel(DebugPanel): pass kwargs['context'] = context_list self.templates.append(kwargs) - + def nav_title(self): return _('Templates') - + def title(self): num_templates = len([t for t in self.templates if not (t['template'].name and t['template'].name.startswith('debug_toolbar/'))]) return _('Templates (%(num_templates)s rendered)') % {'num_templates': num_templates} - + def url(self): return '' - + def process_request(self, request): self.request = request - - def content(self): + + def process_response(self, request, response): context_processors = dict( [ ("%s.%s" % (k.__module__, k.__name__), @@ -116,12 +117,17 @@ class TemplateDebugPanel(DebugPanel): context_list = template_data.get('context', []) info['context'] = '\n'.join(context_list) template_context.append(info) - - context = self.context.copy() - context.update({ + + self.stats = { 'templates': template_context, 'template_dirs': [normpath(x) for x in settings.TEMPLATE_DIRS], 'context_processors': context_processors, - }) - + } + + toolbar = DebugToolbarMiddleware.get_current() + toolbar.stats['template'] = self.stats + + def content(self): + context = self.context.copy() + context.update(self.stats) return render_to_string('debug_toolbar/panels/templates.html', context) |
