diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py old mode 100644 new mode 100755 index 1979e1d63..c1dc93fbc --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -1,3 +1,4 @@ +#Test Upgrade """ Debug Toolbar middleware """ @@ -7,12 +8,13 @@ from django.conf import settings from django.http import HttpResponseRedirect from django.shortcuts import render_to_response +from django.utils import simplejson from django.utils.encoding import smart_unicode from django.utils.importlib import import_module - import debug_toolbar.urls from debug_toolbar.toolbar.loader import DebugToolbar + _HTML_TYPES = ('text/html', 'application/xhtml+xml') @@ -98,6 +100,7 @@ def process_request(self, request): toolbar = DebugToolbar(request) for panel in toolbar.panels: panel.process_request(request) + self.__class__.debug_toolbars[thread.get_ident()] = toolbar def process_view(self, request, view_func, view_args, view_kwargs): @@ -115,8 +118,30 @@ def process_view(self, request, view_func, view_args, view_kwargs): def process_response(self, request, response): __traceback_hide__ = True ident = thread.get_ident() + toolbar = self.__class__.debug_toolbars.get(ident) + if not toolbar or request.is_ajax(): + + if settings.DEBUG_TOOLBAR_CONFIG['ACCEPT_AJAX']: + + try: + simplejson.loads(response.content) + except simplejson.JSONDecodeError: + return response + for panel in toolbar.panels: + panel.process_response(request, response) + + rendered = toolbar.render_toolbar() + + rendered = simplejson.dumps({'rendered':rendered}) + + if '{replace}' not in response.content: + if response.content[-1] == '}': + response.content = response.content[:-1] + ', "replace":"{replace}"}' + + response.content = response.content.replace('"{replace}"', rendered) + return response if isinstance(response, HttpResponseRedirect): if not toolbar.config['INTERCEPT_REDIRECTS']: diff --git a/debug_toolbar/panels/__init__.py b/debug_toolbar/panels/__init__.py old mode 100644 new mode 100755 index f1751d83b..eb68ea1da --- a/debug_toolbar/panels/__init__.py +++ b/debug_toolbar/panels/__init__.py @@ -47,6 +47,7 @@ def content(self): def record_stats(self, stats): toolbar = DebugToolbarMiddleware.get_current() panel_stats = toolbar.stats.get(self.slug) + #print panel_stats if panel_stats: panel_stats.update(stats) else: diff --git a/debug_toolbar/panels/cache.py b/debug_toolbar/panels/cache.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/headers.py b/debug_toolbar/panels/headers.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/history.py b/debug_toolbar/panels/history.py new file mode 100644 index 000000000..a5fe0312a --- /dev/null +++ b/debug_toolbar/panels/history.py @@ -0,0 +1,41 @@ +try: + import resource +except ImportError: + pass # Will fail on Win32 systems +import time +from django.template.loader import render_to_string +from django.utils.translation import ugettext as _ +from debug_toolbar.panels import DebugPanel + + +class AjaxHistoryPanel(DebugPanel): + """ + Panel that displays the time a response took in milliseconds. + """ + name = 'AjaxHistory' + template = 'debug_toolbar/panels/history.html' + + try: # if resource module not available, don't show content panel + resource + except NameError: + has_content = False + has_resource = False + else: + has_content = True + has_resource = True + + def process_request(self, request): + pass + def process_response(self, request, response): + pass + + def nav_title(self): + return _('Ajax History') + def nav_subtitle(self): + return _('0 REQUESTS') + + def title(self): + return _('Ajax History') + + def url(http://github.com/self): + return '' diff --git a/debug_toolbar/panels/logger.py b/debug_toolbar/panels/logger.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/profiling.py b/debug_toolbar/panels/profiling.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/request_vars.py b/debug_toolbar/panels/request_vars.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/settings_vars.py b/debug_toolbar/panels/settings_vars.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/signals.py b/debug_toolbar/panels/signals.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/panels/timer.py b/debug_toolbar/panels/timer.py old mode 100644 new mode 100755 index bc7f87d97..94f019557 --- a/debug_toolbar/panels/timer.py +++ b/debug_toolbar/panels/timer.py @@ -31,8 +31,12 @@ def process_request(self, request): def process_response(self, request, response): stats = {'total_time': (time.time() - self._start_time) * 1000} + print 'has resource' + print self.has_resource if self.has_resource: self._end_rusage = resource.getrusage(resource.RUSAGE_SELF) + print 'end rusage' + print self._end_rusage stats['utime'] = 1000 * self._elapsed_ru('ru_utime') stats['stime'] = 1000 * self._elapsed_ru('ru_stime') stats['total'] = stats['utime'] + stats['stime'] diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/version.py old mode 100644 new mode 100755 diff --git a/debug_toolbar/templates/debug_toolbar/base.html b/debug_toolbar/templates/debug_toolbar/base.html old mode 100644 new mode 100755 index a790bd107..04eca2705 --- a/debug_toolbar/templates/debug_toolbar/base.html +++ b/debug_toolbar/templates/debug_toolbar/base.html @@ -1,9 +1,88 @@ {% load i18n %} - - + + + +