aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor2009-10-16 21:16:51 -0700
committerRob Hudson2009-10-16 21:18:58 -0700
commit786990a9a81ab0e4905057abb04d389479fd8b04 (patch)
tree628c935b6ba6171527ea0979781fa6a0276cda68
parent4ca3529b6418241628e702c9c1e5b8d31ab69d66 (diff)
parent2d848a859a85b6937a1fe10d05211a3717589d86 (diff)
downloaddjango-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.py41
-rw-r--r--debug_toolbar/templates/debug_toolbar/panels/versions.html18
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>