diff options
| author | Aymeric Augustin | 2014-03-09 21:39:21 +0100 |
|---|---|---|
| committer | Aymeric Augustin | 2014-03-09 21:39:21 +0100 |
| commit | 88712cf843503b3fb0e97523b80417b08a83d1fd (patch) | |
| tree | f2d115922d4de126c95927d785a7ec262d916b1b | |
| parent | 9b9ba2d31598167b8206e855c3fd65824fce1109 (diff) | |
| parent | 5fd65ef273ff011c156b8a6953b667f8b6b6c249 (diff) | |
| download | django-debug-toolbar-88712cf843503b3fb0e97523b80417b08a83d1fd.tar.bz2 | |
Merge pull request #548 from tim-schilling/disable-panels-by-default-510
Deprecating INTERCEPT_REDIRECTS in favor of DEFAULT_DISABLED_PANELS.
| -rw-r--r-- | debug_toolbar/panels/__init__.py | 11 | ||||
| -rw-r--r-- | debug_toolbar/panels/redirects.py | 5 | ||||
| -rw-r--r-- | debug_toolbar/settings.py | 26 | ||||
| -rw-r--r-- | docs/configuration.rst | 7 |
4 files changed, 42 insertions, 7 deletions
diff --git a/debug_toolbar/panels/__init__.py b/debug_toolbar/panels/__init__.py index 178ea6f..a7e3528 100644 --- a/debug_toolbar/panels/__init__.py +++ b/debug_toolbar/panels/__init__.py @@ -4,6 +4,9 @@ import warnings from django.template.loader import render_to_string +from debug_toolbar import settings as dt_settings +from debug_toolbar.utils import get_name_from_obj + class Panel(object): """ @@ -20,7 +23,13 @@ class Panel(object): @property def enabled(self): - return self.toolbar.request.COOKIES.get('djdt' + self.panel_id, 'on') == 'on' + # Check to see if settings has a default value for it + if get_name_from_obj(self) in dt_settings.CONFIG['DEFAULT_DISABLED_PANELS']: + default = 'off' + else: + default = 'on' + # The user's cookies should override the default value + return self.toolbar.request.COOKIES.get('djdt' + self.panel_id, default) == 'on' # Titles and content diff --git a/debug_toolbar/panels/redirects.py b/debug_toolbar/panels/redirects.py index 8bd5aba..757c65c 100644 --- a/debug_toolbar/panels/redirects.py +++ b/debug_toolbar/panels/redirects.py @@ -12,11 +12,6 @@ class RedirectsPanel(Panel): Panel that intercepts redirects and displays a page with debug info. """ - @property - def enabled(self): - default = 'on' if self.toolbar.config['INTERCEPT_REDIRECTS'] else 'off' - return self.toolbar.request.COOKIES.get('djdt' + self.panel_id, default) == 'on' - has_content = False nav_title = _("Intercept redirects") diff --git a/debug_toolbar/settings.py b/debug_toolbar/settings.py index 48649fd..2c71888 100644 --- a/debug_toolbar/settings.py +++ b/debug_toolbar/settings.py @@ -16,6 +16,7 @@ from django.utils import six CONFIG_DEFAULTS = { # Toolbar options + 'DEFAULT_DISABLED_PANELS': set(['debug_toolbar.panels.redirects.RedirectsPanel']), 'INSERT_BEFORE': '</body>', 'RENDER_PANELS': None, 'RESULTS_STORE_SIZE': 10, @@ -32,7 +33,6 @@ CONFIG_DEFAULTS = { 'debug_toolbar', 'django', ), - 'INTERCEPT_REDIRECTS': False, 'SHOW_TEMPLATE_CONTEXT': True, 'SQL_WARNING_THRESHOLD': 500, # milliseconds } @@ -125,6 +125,30 @@ else: PANELS[index] = new_panel +if 'INTERCEPT_REDIRECTS' in USER_CONFIG: + warnings.warn( + "INTERCEPT_REDIRECTS is deprecated. Please use the " + "DEFAULT_DISABLED_PANELS config in the" + "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning) + if USER_CONFIG['INTERCEPT_REDIRECTS']: + if 'debug_toolbar.panels.redirects.RedirectsPanel' \ + in CONFIG['DEFAULT_DISABLED_PANELS']: + # RedirectsPanel should be enabled + try: + CONFIG['DEFAULT_DISABLED_PANELS'].remove( + 'debug_toolbar.panels.redirects.RedirectsPanel' + ) + except KeyError: + # We wanted to remove it, but it didn't exist. This is fine + pass + elif not 'debug_toolbar.panels.redirects.RedirectsPanel' \ + in CONFIG['DEFAULT_DISABLED_PANELS']: + # RedirectsPanel should be disabled + CONFIG['DEFAULT_DISABLED_PANELS'].add( + 'debug_toolbar.panels.redirects.RedirectsPanel' + ) + + PATCH_SETTINGS = getattr(settings, 'DEBUG_TOOLBAR_PATCH_SETTINGS', settings.DEBUG) diff --git a/docs/configuration.rst b/docs/configuration.rst index 88226cd..8ad9087 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -57,6 +57,13 @@ toolbar itself, others are specific to some panels. Toolbar options ~~~~~~~~~~~~~~~ +* ``DEFAULT_DISABLED_PANELS`` + + Default: ``set(['debug_toolbar.panels.redirects.RedirectsPanel'])`` + + This setting is a set of the full Python paths to each panel that you + want disabled (but still displayed) by default. + * ``INSERT_BEFORE`` Default: ``'</body>'`` |
