diff options
Diffstat (limited to 'debug_toolbar/panels')
| -rw-r--r-- | debug_toolbar/panels/staticfiles.py | 8 | ||||
| -rw-r--r-- | debug_toolbar/panels/timer.py | 2 | ||||
| -rw-r--r-- | debug_toolbar/panels/versions.py | 65 |
3 files changed, 44 insertions, 31 deletions
diff --git a/debug_toolbar/panels/staticfiles.py b/debug_toolbar/panels/staticfiles.py index efaf841..daf8909 100644 --- a/debug_toolbar/panels/staticfiles.py +++ b/debug_toolbar/panels/staticfiles.py @@ -6,7 +6,6 @@ except ImportError: threading = None from django.conf import settings -from django.core.exceptions import ImproperlyConfigured from django.core.files.storage import get_storage_class from django.contrib.staticfiles import finders, storage from django.contrib.staticfiles.templatetags import staticfiles @@ -102,13 +101,6 @@ class StaticFilesPanel(panels.Panel): storage.staticfiles_storage = staticfiles.staticfiles_storage = _original_storage @property - def has_content(self): - if "django.contrib.staticfiles" not in settings.INSTALLED_APPS: - raise ImproperlyConfigured("Could not find staticfiles in " - "INSTALLED_APPS setting.") - return True - - @property def num_used(self): return len(self._paths[threading.currentThread()]) diff --git a/debug_toolbar/panels/timer.py b/debug_toolbar/panels/timer.py index e19a15e..741f57a 100644 --- a/debug_toolbar/panels/timer.py +++ b/debug_toolbar/panels/timer.py @@ -6,7 +6,7 @@ except ImportError: resource = None import time from django.template.loader import render_to_string -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from debug_toolbar.panels import Panel 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 |
