diff options
| -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>'`` | 
