aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor2009-09-25 23:20:09 -0400
committerAlex Gaynor2009-09-25 23:20:09 -0400
commit4fd746e82f9ae2c36ca49627ae9b1a01b982d8ae (patch)
tree2a4e0efa4101f14de1efa85dd6d32c9f78c1508e
parentc91d9b7e48528fcc901b567d28ed67bdcb42bffa (diff)
downloaddjango-debug-toolbar-4fd746e82f9ae2c36ca49627ae9b1a01b982d8ae.tar.bz2
detect versions for other installed applications
-rw-r--r--debug_toolbar/middleware.py2
-rw-r--r--debug_toolbar/panels/version.py26
2 files changed, 23 insertions, 5 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index cd2386c..eed25c4 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -64,7 +64,7 @@ class DebugToolbarMiddleware(object):
request.urlconf = 'debug_toolbar.urls'
self.debug_toolbars[request] = DebugToolbar(request)
- for panel in self.debug_toolbars[request]:
+ for panel in self.debug_toolbars[request].panels:
panel.process_request(request)
def process_view(self, request, view_func, view_args, view_kwargs):
diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/version.py
index 1837021..f5a5a59 100644
--- a/debug_toolbar/panels/version.py
+++ b/debug_toolbar/panels/version.py
@@ -1,6 +1,7 @@
import sys
import django
+from django.conf import settings
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
@@ -28,10 +29,27 @@ class VersionDebugPanel(DebugPanel):
return 'Versions'
def content(self):
- versions = {
- 'Django': django.get_version(),
- 'Django Debug Toolbar': debug_toolbar.__version__,
- }
+ versions = {}
+ for app in settings.INSTALLED_APPS + ['django']:
+ name = app.split('.')[-1].replace('_', ' ').capitalize()
+ __import__(app)
+ app = sys.modules[app]
+ if hasattr(app, 'get_version'):
+ get_version = app.get_version
+ if callable(get_version):
+ version = get_version()
+ else:
+ version = get_version
+ elif hasattr(app, 'VERSION'):
+ version = app.VERSION
+ elif hasattr(app, '__version__'):
+ version = app.__version__
+ else:
+ continue
+ if isinstance(version, (list, tuple)):
+ version = '.'.join(str(o) for o in version)
+ versions[name] = version
+
return render_to_string('debug_toolbar/panels/versions.html', {
'versions': versions,
'paths': sys.path,