aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar
diff options
context:
space:
mode:
authorBryan Chow2010-03-03 16:02:19 -0800
committerBryan Chow2010-03-03 16:02:19 -0800
commitd05dcbb4aa93b1ce9d097ed8d537f06eb2491f5e (patch)
treedc8335f4eb9f127037e74914fe792a567553f212 /debug_toolbar
parent7e8a4e195d4b0e3cabf0742b31e087a81712d12f (diff)
downloaddjango-debug-toolbar-d05dcbb4aa93b1ce9d097ed8d537f06eb2491f5e.tar.bz2
Factor versions data out of VersionDebugPanel.
Diffstat (limited to 'debug_toolbar')
-rw-r--r--debug_toolbar/debug/version.py34
-rw-r--r--debug_toolbar/panels/version.py42
2 files changed, 43 insertions, 33 deletions
diff --git a/debug_toolbar/debug/version.py b/debug_toolbar/debug/version.py
new file mode 100644
index 0000000..0c17f58
--- /dev/null
+++ b/debug_toolbar/debug/version.py
@@ -0,0 +1,34 @@
+import sys
+from django import get_version
+from django.conf import settings
+
+class DebugVersions(object):
+
+ def django_version(self):
+ return get_version()
+
+ def get_versions(self):
+ 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 versions
+
+ def get_paths(self):
+ return sys.path
diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/version.py
index 098ab62..5f6aa49 100644
--- a/debug_toolbar/panels/version.py
+++ b/debug_toolbar/panels/version.py
@@ -1,13 +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 _
-
-import debug_toolbar
from debug_toolbar.panels import DebugPanel
-
+from debug_toolbar.debug.version import DebugVersions
class VersionDebugPanel(DebugPanel):
"""
@@ -16,44 +10,26 @@ class VersionDebugPanel(DebugPanel):
name = 'Version'
has_content = True
+ def __init__(self, context={}):
+ super(VersionDebugPanel, self).__init__(context)
+ self.debug_version = DebugVersions()
+
def nav_title(self):
return _('Versions')
def nav_subtitle(self):
- return 'Django %s' % django.get_version()
+ return 'Django %s' % self.debug_version.django_version()
def url(self):
return ''
-
+
def title(self):
return _('Versions')
def content(self):
- 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
-
context = self.context.copy()
context.update({
- 'versions': versions,
- 'paths': sys.path,
+ 'versions': self.debug_version.get_versions(),
+ 'paths': self.debug_version.get_paths(),
})
-
return render_to_string('debug_toolbar/panels/versions.html', context)