diff options
| -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, | 
