diff options
| author | Alex Gaynor | 2009-10-16 21:16:51 -0700 | 
|---|---|---|
| committer | Rob Hudson | 2009-10-16 21:18:58 -0700 | 
| commit | 786990a9a81ab0e4905057abb04d389479fd8b04 (patch) | |
| tree | 628c935b6ba6171527ea0979781fa6a0276cda68 /debug_toolbar/panels/version.py | |
| parent | 4ca3529b6418241628e702c9c1e5b8d31ab69d66 (diff) | |
| parent | 2d848a859a85b6937a1fe10d05211a3717589d86 (diff) | |
| download | django-debug-toolbar-786990a9a81ab0e4905057abb04d389479fd8b04.tar.bz2 | |
Added detection and display of versions of apps.
Signed-off-by: Rob Hudson <rob@cogit8.org>
Diffstat (limited to 'debug_toolbar/panels/version.py')
| -rw-r--r-- | debug_toolbar/panels/version.py | 41 | 
1 files changed, 38 insertions, 3 deletions
| diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/version.py index 3d82dd0..da46178 100644 --- a/debug_toolbar/panels/version.py +++ b/debug_toolbar/panels/version.py @@ -1,21 +1,56 @@ +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 _ + +import debug_toolbar  from debug_toolbar.panels import DebugPanel +  class VersionDebugPanel(DebugPanel):      """      Panel that displays the Django version.      """      name = 'Version' +    has_content = True      def nav_title(self): -        return _('Django Version') +        return _('Versions')      def nav_subtitle(self): -        return django.get_version() +        return 'Django %s' % django.get_version()      def url(self):          return '' +    def title(self): +        return 'Versions' +      def content(self): -        return '' +        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, +        }) | 
