From 924361de6c1c87a5dd4db0e37b94380246d85790 Mon Sep 17 00:00:00 2001
From: Alex Gaynor
Date: Fri, 18 Sep 2009 19:29:32 -0400
Subject: Made the versions panel more powerful
---
debug_toolbar/panels/version.py | 23 +++++++++++++++++++---
.../templates/debug_toolbar/panels/versions.html | 18 +++++++++++++++++
2 files changed, 38 insertions(+), 3 deletions(-)
create mode 100644 debug_toolbar/templates/debug_toolbar/panels/versions.html
(limited to 'debug_toolbar')
diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/version.py
index 3d82dd0..1837021 100644
--- a/debug_toolbar/panels/version.py
+++ b/debug_toolbar/panels/version.py
@@ -1,21 +1,38 @@
+import sys
+
import django
+from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
+
+import debug_toolbar
from debug_toolbar.panels import DebugPanel
+
class VersionDebugPanel(DebugPanel):
"""
Panel that displays the Django version.
"""
name = 'Version'
+ has_content = True
def nav_title(self):
- return _('Django Version')
+ return _('Versions')
def nav_subtitle(self):
- return django.get_version()
+ return 'Django %s' % django.get_version()
def url(self):
return ''
+
+ def title(self):
+ return 'Versions'
def content(self):
- return ''
+ versions = {
+ 'Django': django.get_version(),
+ 'Django Debug Toolbar': debug_toolbar.__version__,
+ }
+ return render_to_string('debug_toolbar/panels/versions.html', {
+ 'versions': versions,
+ 'paths': sys.path,
+ })
diff --git a/debug_toolbar/templates/debug_toolbar/panels/versions.html b/debug_toolbar/templates/debug_toolbar/panels/versions.html
new file mode 100644
index 0000000..f0ee012
--- /dev/null
+++ b/debug_toolbar/templates/debug_toolbar/panels/versions.html
@@ -0,0 +1,18 @@
+{% load i18n %}
+
+
+
+
+ | {% trans "Package" %} |
+ {% trans "Version" %} |
+
+
+
+ {% for package, version in versions.iteritems %}
+
+ | {{ package }} |
+ {{ version }} |
+
+ {% endfor %}
+
+
--
cgit v1.2.3
From c91d9b7e48528fcc901b567d28ed67bdcb42bffa Mon Sep 17 00:00:00 2001
From: Alex Gaynor
Date: Fri, 25 Sep 2009 22:48:16 -0400
Subject: Mkae this threadsafe
---
debug_toolbar/middleware.py | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
(limited to 'debug_toolbar')
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index 29c6336..cd2386c 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -32,7 +32,7 @@ class DebugToolbarMiddleware(object):
on outgoing response.
"""
def __init__(self):
- self.debug_toolbar = None
+ self.debug_toolbars = {}
self.original_urlconf = settings.ROOT_URLCONF
self.original_pattern = patterns('', ('', include(self.original_urlconf)),)
self.override_url = True
@@ -63,22 +63,19 @@ class DebugToolbarMiddleware(object):
self.override_url = False
request.urlconf = 'debug_toolbar.urls'
- self.debug_toolbar = DebugToolbar(request)
- for panel in self.debug_toolbar.panels:
+ self.debug_toolbars[request] = DebugToolbar(request)
+ for panel in self.debug_toolbars[request]:
panel.process_request(request)
- elif self.debug_toolbar:
- self.debug_toolbar = None
- return None
def process_view(self, request, view_func, view_args, view_kwargs):
- if self.debug_toolbar:
- for panel in self.debug_toolbar.panels:
+ if request in self.debug_toolbars:
+ for panel in self.debug_toolbars[request].panels:
panel.process_view(request, view_func, view_args, view_kwargs)
def process_response(self, request, response):
- if not self.debug_toolbar:
+ if request not in self.debug_toolbars:
return response
- if self.debug_toolbar.config['INTERCEPT_REDIRECTS']:
+ if self.debug_toolbars[request].config['INTERCEPT_REDIRECTS']:
if isinstance(response, HttpResponseRedirect):
redirect_to = response.get('Location', None)
if redirect_to:
@@ -88,8 +85,9 @@ class DebugToolbarMiddleware(object):
)
if response.status_code != 200:
return response
- for panel in self.debug_toolbar.panels:
+ for panel in self.debug_toolbars[request].panels:
panel.process_response(request, response)
if response['Content-Type'].split(';')[0] in _HTML_TYPES:
- response.content = replace_insensitive(smart_unicode(response.content), u'