aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAymeric Augustin2014-01-08 21:32:45 +0100
committerAymeric Augustin2014-01-08 21:39:05 +0100
commitc11b64c598db64d10e4d316a6fde433fc5d20aed (patch)
tree11171a7e23a86d2f8f25ab06effc27547b534e94
parent37fadc0a0af4db7a0d3dd750e6a43efe4aed5ad9 (diff)
downloaddjango-debug-toolbar-c11b64c598db64d10e4d316a6fde433fc5d20aed.tar.bz2
Update version panel for Django 1.7.
-rw-r--r--debug_toolbar/panels/versions.py65
1 files changed, 43 insertions, 22 deletions
diff --git a/debug_toolbar/panels/versions.py b/debug_toolbar/panels/versions.py
index 321ba6e..29f165b 100644
--- a/debug_toolbar/panels/versions.py
+++ b/debug_toolbar/panels/versions.py
@@ -27,28 +27,49 @@ class VersionsPanel(Panel):
template = 'debug_toolbar/panels/versions.html'
def process_response(self, request, response):
- versions = [('Python', '%d.%d.%d' % sys.version_info[:3])]
- for app in list(settings.INSTALLED_APPS) + ['django']:
- name = app.split('.')[-1].replace('_', ' ').capitalize()
- app = import_module(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.append((name, version))
- versions = sorted(versions, key=lambda version: version[0])
-
+ versions = [
+ ('Python', '%d.%d.%d' % sys.version_info[:3]),
+ ('Django', self.get_app_version(django)),
+ ]
+ if django.VERSION[:2] >= (1, 7):
+ versions += list(self.gen_app_versions_1_7())
+ else:
+ versions += list(self.gen_app_versions_1_6())
self.record_stats({
- 'versions': OrderedDict(versions),
+ 'versions': OrderedDict(sorted(versions, key=lambda v: v[0])),
'paths': sys.path,
})
+
+ def gen_app_versions_1_7(self):
+ from django.apps import apps
+ for app_config in apps.get_app_configs():
+ name = app_config.verbose_name
+ app = app_config.module
+ version = self.get_app_version(app)
+ if version:
+ yield name, version
+
+ def gen_app_versions_1_6(self):
+ for app in list(settings.INSTALLED_APPS):
+ name = app.split('.')[-1].replace('_', ' ').capitalize()
+ app = import_module(app)
+ version = self.get_app_version(app)
+ if version:
+ yield name, version
+
+ def get_app_version(self, 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:
+ return
+ if isinstance(version, (list, tuple)):
+ version = '.'.join(str(o) for o in version)
+ return version