1
+ import sys
2
+
3
+ import django
4
+ from django .conf import settings
1
5
from django .template .loader import render_to_string
2
6
from django .utils .translation import ugettext_lazy as _
7
+
8
+ import debug_toolbar
3
9
from debug_toolbar .panels import DebugPanel
4
- from debug_toolbar . debug . version import DebugVersions
10
+
5
11
6
12
class VersionDebugPanel (DebugPanel ):
7
13
"""
@@ -10,26 +16,44 @@ class VersionDebugPanel(DebugPanel):
10
16
name = 'Version'
11
17
has_content = True
12
18
13
- def __init__ (self , context = {}):
14
- super (VersionDebugPanel , self ).__init__ (context )
15
- self .debug_version = DebugVersions ()
16
-
17
19
def nav_title (self ):
18
20
return _ ('Versions' )
19
21
20
22
def nav_subtitle (self ):
21
- return 'Django %s' % self . debug_version . django_version ()
23
+ return 'Django %s' % django . get_version ()
22
24
23
25
def url (self ):
24
26
return ''
25
-
27
+
26
28
def title (self ):
27
29
return _ ('Versions' )
28
30
29
31
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
+
30
53
context = self .context .copy ()
31
54
context .update ({
32
- 'versions' : self . debug_version . get_versions () ,
33
- 'paths' : self . debug_version . get_paths () ,
55
+ 'versions' : versions ,
56
+ 'paths' : sys . path ,
34
57
})
58
+
35
59
return render_to_string ('debug_toolbar/panels/versions.html' , context )
0 commit comments