Skip to content

Commit d05dcbb

Browse files
committed
Factor versions data out of VersionDebugPanel.
1 parent 7e8a4e1 commit d05dcbb

File tree

2 files changed

+43
-33
lines changed

2 files changed

+43
-33
lines changed

debug_toolbar/debug/version.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import sys
2+
from django import get_version
3+
from django.conf import settings
4+
5+
class DebugVersions(object):
6+
7+
def django_version(self):
8+
return get_version()
9+
10+
def get_versions(self):
11+
versions = {}
12+
for app in settings.INSTALLED_APPS + ['django']:
13+
name = app.split('.')[-1].replace('_', ' ').capitalize()
14+
__import__(app)
15+
app = sys.modules[app]
16+
if hasattr(app, 'get_version'):
17+
get_version = app.get_version
18+
if callable(get_version):
19+
version = get_version()
20+
else:
21+
version = get_version
22+
elif hasattr(app, 'VERSION'):
23+
version = app.VERSION
24+
elif hasattr(app, '__version__'):
25+
version = app.__version__
26+
else:
27+
continue
28+
if isinstance(version, (list, tuple)):
29+
version = '.'.join(str(o) for o in version)
30+
versions[name] = version
31+
return versions
32+
33+
def get_paths(self):
34+
return sys.path

debug_toolbar/panels/version.py

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
import sys
2-
3-
import django
4-
from django.conf import settings
51
from django.template.loader import render_to_string
62
from django.utils.translation import ugettext_lazy as _
7-
8-
import debug_toolbar
93
from debug_toolbar.panels import DebugPanel
10-
4+
from debug_toolbar.debug.version import DebugVersions
115

126
class VersionDebugPanel(DebugPanel):
137
"""
@@ -16,44 +10,26 @@ class VersionDebugPanel(DebugPanel):
1610
name = 'Version'
1711
has_content = True
1812

13+
def __init__(self, context={}):
14+
super(VersionDebugPanel, self).__init__(context)
15+
self.debug_version = DebugVersions()
16+
1917
def nav_title(self):
2018
return _('Versions')
2119

2220
def nav_subtitle(self):
23-
return 'Django %s' % django.get_version()
21+
return 'Django %s' % self.debug_version.django_version()
2422

2523
def url(self):
2624
return ''
27-
25+
2826
def title(self):
2927
return _('Versions')
3028

3129
def content(self):
32-
versions = {}
33-
for app in settings.INSTALLED_APPS + ['django']:
34-
name = app.split('.')[-1].replace('_', ' ').capitalize()
35-
__import__(app)
36-
app = sys.modules[app]
37-
if hasattr(app, 'get_version'):
38-
get_version = app.get_version
39-
if callable(get_version):
40-
version = get_version()
41-
else:
42-
version = get_version
43-
elif hasattr(app, 'VERSION'):
44-
version = app.VERSION
45-
elif hasattr(app, '__version__'):
46-
version = app.__version__
47-
else:
48-
continue
49-
if isinstance(version, (list, tuple)):
50-
version = '.'.join(str(o) for o in version)
51-
versions[name] = version
52-
5330
context = self.context.copy()
5431
context.update({
55-
'versions': versions,
56-
'paths': sys.path,
32+
'versions': self.debug_version.get_versions(),
33+
'paths': self.debug_version.get_paths(),
5734
})
58-
5935
return render_to_string('debug_toolbar/panels/versions.html', context)

0 commit comments

Comments
 (0)