aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar
diff options
context:
space:
mode:
Diffstat (limited to 'debug_toolbar')
-rw-r--r--debug_toolbar/panels/request_vars.py18
-rw-r--r--debug_toolbar/panels/sql.py2
-rw-r--r--debug_toolbar/panels/template.py2
-rw-r--r--debug_toolbar/templates/debug_toolbar/panels/sql.html3
-rw-r--r--debug_toolbar/templatetags/__init__.py0
-rw-r--r--debug_toolbar/templatetags/debug_toolbar_utils.py11
6 files changed, 29 insertions, 7 deletions
diff --git a/debug_toolbar/panels/request_vars.py b/debug_toolbar/panels/request_vars.py
index 632068e..60214ae 100644
--- a/debug_toolbar/panels/request_vars.py
+++ b/debug_toolbar/panels/request_vars.py
@@ -9,6 +9,12 @@ class RequestVarsDebugPanel(DebugPanel):
name = 'RequestVars'
has_content = True
+ def __init__(self, *args, **kwargs):
+ DebugPanel.__init__(self, *args, **kwargs)
+ self.view_func = None
+ self.view_args = None
+ self.view_kwargs = None
+
def nav_title(self):
return _('Request Vars')
@@ -29,18 +35,18 @@ class RequestVarsDebugPanel(DebugPanel):
def content(self):
context = self.context.copy()
- if hasattr(self.view_func, '__name__'):
- view_name = self.view_func.__name__
- elif hasattr(self.view_func, '__class__'):
- view_name = self.view_func.__class__.__name__
+ if self.view_func is not None:
+ module = self.view_func.__module__
+ name = getattr(self.view_func, '__name__', None) or getattr(self.view_func.__class__,'__name__','<unknown>')
+ view_func = '%s.%s' % (module, name)
else:
- view_name = '<unknown>'
+ view_func = '<no view>'
context.update({
'get': [(k, self.request.GET.getlist(k)) for k in self.request.GET],
'post': [(k, self.request.POST.getlist(k)) for k in self.request.POST],
'cookies': [(k, self.request.COOKIES.get(k)) for k in self.request.COOKIES],
- 'view_func': '%s.%s' % (self.view_func.__module__, view_name),
+ 'view_func': view_func,
'view_args': self.view_args,
'view_kwargs': self.view_kwargs
})
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index c6b5996..bce769a 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -183,8 +183,10 @@ class SQLDebugPanel(DebugPanel):
query['rgb_color'] = self._databases[alias]['rgb_color']
try:
query['width_ratio'] = (query['duration'] / self._sql_time) * 100
+ query['width_ratio_relative'] = 100.0 * query['width_ratio'] / (100.0 - width_ratio_tally)
except ZeroDivisionError:
query['width_ratio'] = 0
+ query['width_ratio_relative'] = 0
query['start_offset'] = width_ratio_tally
query['end_offset'] = query['width_ratio'] + query['start_offset']
width_ratio_tally += query['width_ratio']
diff --git a/debug_toolbar/panels/template.py b/debug_toolbar/panels/template.py
index 44b8b3e..3c70690 100644
--- a/debug_toolbar/panels/template.py
+++ b/debug_toolbar/panels/template.py
@@ -78,6 +78,8 @@ class TemplateDebugPanel(DebugPanel):
# Skip templates that we are generating through the debug toolbar.
if template.name and template.name.startswith('debug_toolbar/'):
continue
+ if not hasattr(template, 'origin'):
+ continue
if template.origin and template.origin.name:
template.origin_name = template.origin.name
else:
diff --git a/debug_toolbar/templates/debug_toolbar/panels/sql.html b/debug_toolbar/templates/debug_toolbar/panels/sql.html
index f6f231c..9b282ca 100644
--- a/debug_toolbar/templates/debug_toolbar/panels/sql.html
+++ b/debug_toolbar/templates/debug_toolbar/panels/sql.html
@@ -1,4 +1,5 @@
{% load i18n %}
+{% load debug_toolbar_utils %}
<div class="clearfix">
<ul class="stats">
{% for alias, info in databases %}
@@ -34,7 +35,7 @@
</div>
</td>
<td class="timeline">
- <div class="djDebugTimeline"><div class="djDebugLineChart{% if query.is_slow %} djDebugLineChartWarning{% endif %}" style="left:{{ query.start_offset }}%;"><strong style="width:{{ query.width_ratio }}%;">{{ query.width_ratio }}%</strong></div></div>
+ <div class="djDebugTimeline"><div class="djDebugLineChart{% if query.is_slow %} djDebugLineChartWarning{% endif %}" style="left:{{ query.start_offset|dotted_number }}%;"><strong style="width:{{ query.width_ratio_relative|dotted_number }}%;">{{ query.width_ratio }}%</strong></div></div>
</td>
<td class="time">
{{ query.duration|floatformat:"2" }}
diff --git a/debug_toolbar/templatetags/__init__.py b/debug_toolbar/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/debug_toolbar/templatetags/__init__.py
diff --git a/debug_toolbar/templatetags/debug_toolbar_utils.py b/debug_toolbar/templatetags/debug_toolbar_utils.py
new file mode 100644
index 0000000..6b204eb
--- /dev/null
+++ b/debug_toolbar/templatetags/debug_toolbar_utils.py
@@ -0,0 +1,11 @@
+
+from django import template
+from django.utils.numberformat import format
+
+register = template.Library()
+
+@register.filter
+def dotted_number(number):
+ number = float(number)
+ return format(number, '.', 6)
+