From 27807665ea21d92586dd397e5c18771fdf0c1ea9 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Fri, 25 Sep 2009 23:20:09 -0400 Subject: detect versions for other installed applications --- debug_toolbar/middleware.py | 2 +- debug_toolbar/panels/version.py | 26 ++++++++++++++++++++++---- 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, -- cgit v1.2.3