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 /debug_toolbar/panels/version.py | |
| parent | c91d9b7e48528fcc901b567d28ed67bdcb42bffa (diff) | |
| download | django-debug-toolbar-4fd746e82f9ae2c36ca49627ae9b1a01b982d8ae.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,  | 
