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 | |
| 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>
| -rw-r--r-- | debug_toolbar/panels/version.py | 41 | ||||
| -rw-r--r-- | debug_toolbar/templates/debug_toolbar/panels/versions.html | 18 |
2 files changed, 56 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, + }) diff --git a/debug_toolbar/templates/debug_toolbar/panels/versions.html b/debug_toolbar/templates/debug_toolbar/panels/versions.html new file mode 100644 index 0000000..8a09928 --- /dev/null +++ b/debug_toolbar/templates/debug_toolbar/panels/versions.html @@ -0,0 +1,18 @@ +{% load i18n %} + +<table> + <thead> + <tr> + <th>{% trans "Package" %}</th> + <th>{% trans "Version" %}</th> + </tr> + </thead> + <tbody> + {% for package, version in versions.iteritems %} + <tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}"> + <td>{{ package }}</td> + <td>{{ version }}</td> + </tr> + {% endfor %} + </tbody> +</table> |
