aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/middleware.py
diff options
context:
space:
mode:
authorAymeric Augustin2013-11-10 09:58:56 -0800
committerAymeric Augustin2013-11-10 09:58:56 -0800
commitd889bf25d98e6d3c8dde01b207f9ba5f3d91a806 (patch)
tree97967ae5b01c7531954b983606bc78498a128d8a /debug_toolbar/middleware.py
parent8c7a8ec6529063853c9ff36da72a38841ca5e235 (diff)
parentf5eaa8ebb0d1ca13aa2453ef88bb1eb223757716 (diff)
downloaddjango-debug-toolbar-d889bf25d98e6d3c8dde01b207f9ba5f3d91a806.tar.bz2
Merge pull request #453 from aaugustin/disable-instrumentation-for-disabled-panels
Disable instrumentation for disabled panels
Diffstat (limited to 'debug_toolbar/middleware.py')
-rw-r--r--debug_toolbar/middleware.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index 7988fd5..daea751 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -54,10 +54,6 @@ class DebugToolbarMiddleware(object):
"""
debug_toolbars = {}
- @classmethod
- def get_current(cls):
- return cls.debug_toolbars.get(threading.current_thread().ident)
-
def __init__(self):
self._urlconfs = {}
@@ -92,10 +88,10 @@ class DebugToolbarMiddleware(object):
toolbar = DebugToolbar(request)
for panel in toolbar.panels:
- panel.disabled = panel.dom_id() in request.COOKIES
- panel.enabled = not panel.disabled
- if panel.disabled:
+ panel.enabled = panel.dom_id() not in request.COOKIES
+ if not panel.enabled:
continue
+ panel.enable_instrumentation()
panel.process_request(request)
self.__class__.debug_toolbars[threading.current_thread().ident] = toolbar
@@ -106,7 +102,7 @@ class DebugToolbarMiddleware(object):
return
result = None
for panel in toolbar.panels:
- if panel.disabled:
+ if not panel.enabled:
continue
response = panel.process_view(request, view_func, view_args, view_kwargs)
if response:
@@ -131,12 +127,13 @@ class DebugToolbarMiddleware(object):
{'redirect_to': redirect_to}
)
response.cookies = cookies
+ for panel in toolbar.panels:
+ if not panel.enabled:
+ continue
+ panel.process_response(request, response)
+ panel.disable_instrumentation()
if ('gzip' not in response.get('Content-Encoding', '') and
response.get('Content-Type', '').split(';')[0] in _HTML_TYPES):
- for panel in toolbar.panels:
- if panel.disabled:
- continue
- panel.process_response(request, response)
response.content = replace_insensitive(
force_text(response.content, encoding=settings.DEFAULT_CHARSET),
self.tag,