diff options
| author | Alex Gaynor | 2009-09-25 23:20:09 -0400 |
|---|---|---|
| committer | Alex Gaynor | 2009-09-25 23:20:09 -0400 |
| commit | 4fd746e82f9ae2c36ca49627ae9b1a01b982d8ae (patch) | |
| tree | 2a4e0efa4101f14de1efa85dd6d32c9f78c1508e | |
| parent | c91d9b7e48528fcc901b567d28ed67bdcb42bffa (diff) | |
| download | django-debug-toolbar-4fd746e82f9ae2c36ca49627ae9b1a01b982d8ae.tar.bz2 | |
detect versions for other installed applications
| -rw-r--r-- | debug_toolbar/middleware.py | 2 | ||||
| -rw-r--r-- | 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, |
