diff options
| author | Alex Gaynor | 2009-09-25 23:20:09 -0400 | 
|---|---|---|
| committer | Rob Hudson | 2009-11-02 12:57:13 -0800 | 
| commit | 27807665ea21d92586dd397e5c18771fdf0c1ea9 (patch) | |
| tree | 15679b6b665cf852fc96cd32d8615319a1833a80 /debug_toolbar/panels/version.py | |
| parent | a803d8046d1041b411f06ecf356003bfa59bffd1 (diff) | |
| download | django-debug-toolbar-27807665ea21d92586dd397e5c18771fdf0c1ea9.tar.bz2 | |
detect versions for other installed applications
Diffstat (limited to 'debug_toolbar/panels/version.py')
| -rw-r--r-- | debug_toolbar/panels/version.py | 26 | 
1 files changed, 22 insertions, 4 deletions
| 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, | 
