Anpassungen für das Hosting bei Djangoeurope und damit verbundenen Versionen Django 1.8 und Python 2.7
This commit is contained in:
committed by
Christian Berg
parent
cb4b15b3c6
commit
b96b485b61
69
templates/debug_toolbar/panels/cache.html
Normal file
69
templates/debug_toolbar/panels/cache.html
Normal file
@@ -0,0 +1,69 @@
|
||||
{% load i18n %}
|
||||
<h4>{% trans "Summary" %}</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Total calls" %}</th>
|
||||
<th>{% trans "Total time" %}</th>
|
||||
<th>{% trans "Cache hits" %}</th>
|
||||
<th>{% trans "Cache misses" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ total_calls }}</td>
|
||||
<td>{{ total_time }} ms</td>
|
||||
<td>{{ hits }}</td>
|
||||
<td>{{ misses }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4>{% trans "Commands" %}</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
{% for name in counts.keys %}
|
||||
<th>{{ name }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
{% for value in counts.values %}
|
||||
<td>{{ value }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% if calls %}
|
||||
<h4>{% trans "Calls" %}</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">{% trans "Time (ms)" %}</th>
|
||||
<th>{% trans "Type" %}</th>
|
||||
<th>{% trans "Arguments" %}</th>
|
||||
<th>{% trans "Keyword arguments" %}</th>
|
||||
<th>{% trans "Backend" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for call in calls %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}" id="cacheMain_{{ forloop.counter }}">
|
||||
<td class="djdt-toggle">
|
||||
<a class="djToggleSwitch" data-toggle-name="cacheMain" data-toggle-id="{{ forloop.counter }}" data-toggle-open="+" data-toggle-close="-" href>+</a>
|
||||
</td>
|
||||
<td>{{ call.time|floatformat:"4" }}</td>
|
||||
<td>{{ call.name|escape }}</td>
|
||||
<td>{{ call.args|escape }}</td>
|
||||
<td>{{ call.kwargs|escape }}</td>
|
||||
<td>{{ call.backend }}</td>
|
||||
</tr>
|
||||
<tr class="djUnselected djDebugHoverable {% cycle 'djDebugOdd' 'djDebugEven' %} djToggleDetails_{{ forloop.counter }}" id="cacheDetails_{{ forloop.counter }}">
|
||||
<td colspan="1"></td>
|
||||
<td colspan="5"><pre class="djdt-stack">{{ call.trace }}</pre></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
60
templates/debug_toolbar/panels/headers.html
Normal file
60
templates/debug_toolbar/panels/headers.html
Normal file
@@ -0,0 +1,60 @@
|
||||
{% load i18n %}
|
||||
|
||||
<h4>{% trans "Request headers" %}</h4>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Key" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in request_headers.items %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ key|escape }}</td>
|
||||
<td>{{ value|escape }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h4>{% trans "Response headers" %}</h4>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Key" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in response_headers.items %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ key|escape }}</td>
|
||||
<td>{{ value|escape }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h4>{% trans "WSGI environ" %}</h4>
|
||||
|
||||
<p>{% trans "Since the WSGI environ inherits the environment of the server, only a significant subset is shown below." %}</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Key" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in environ.items %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ key|escape }}</td>
|
||||
<td>{{ value|escape }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
28
templates/debug_toolbar/panels/logging.html
Normal file
28
templates/debug_toolbar/panels/logging.html
Normal file
@@ -0,0 +1,28 @@
|
||||
{% load i18n %}
|
||||
{% if records %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Level" %}</th>
|
||||
<th>{% trans "Time" %}</th>
|
||||
<th>{% trans "Channel" %}</th>
|
||||
<th>{% trans "Message" %}</th>
|
||||
<th>{% trans "Location" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for record in records %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ record.level }}</td>
|
||||
<td>{{ record.time|date:"h:i:s m/d/Y" }}</td>
|
||||
<td>{{ record.channel|default:"-" }}</td>
|
||||
<td>{{ record.message|linebreaksbr }}</td>
|
||||
<td>{{ record.file }}:{{ record.line }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>{% trans "No messages logged" %}.</p>
|
||||
{% endif %}
|
||||
|
||||
36
templates/debug_toolbar/panels/profiling.html
Normal file
36
templates/debug_toolbar/panels/profiling.html
Normal file
@@ -0,0 +1,36 @@
|
||||
{% load i18n %}{% load static from staticfiles %}
|
||||
<table width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Call" %}</th>
|
||||
<th>{% trans "CumTime" %}</th>
|
||||
<th>{% trans "Per" %}</th>
|
||||
<th>{% trans "TotTime" %}</th>
|
||||
<th>{% trans "Per" %}</th>
|
||||
<th>{% trans "Count" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for call in func_list %}
|
||||
<tr class="djDebugProfileRow{% for parent_id in call.parent_ids %} djToggleDetails_{{ parent_id }}{% endfor %}" depth="{{ call.depth }}">
|
||||
<td>
|
||||
<div data-padding-left="{{ call.indent }}px">
|
||||
{% if call.has_subfuncs %}
|
||||
<a class="djProfileToggleDetails djToggleSwitch" data-toggle-id="{{ call.id }}" data-toggle-open="+" data-toggle-close="-" href>-</a>
|
||||
{% else %}
|
||||
<span class="djNoToggleSwitch"></span>
|
||||
{% endif %}
|
||||
<span class="djdt-stack">{{ call.func_std_string }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>{{ call.cumtime|floatformat:3 }}</td>
|
||||
<td>{{ call.cumtime_per_call|floatformat:3 }}</td>
|
||||
<td>{{ call.tottime|floatformat:3 }}</td>
|
||||
<td>{{ call.tottime_per_call|floatformat:3 }}</td>
|
||||
<td>{{ call.count }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.profiling.js' %}"></script>
|
||||
124
templates/debug_toolbar/panels/request.html
Normal file
124
templates/debug_toolbar/panels/request.html
Normal file
@@ -0,0 +1,124 @@
|
||||
{% load i18n %}
|
||||
|
||||
<h4>{% trans "View information" %}</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "View function" %}</th>
|
||||
<th>{% trans "Arguments" %}</th>
|
||||
<th>{% trans "Keyword arguments" %}</th>
|
||||
<th>{% trans "URL name" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="djDebugOdd"><code>{{ view_func }}</code></td>
|
||||
<td class="djDebugEven"><code>{{ view_args|pprint }}</code></td>
|
||||
<td class="djDebugOdd"><code>{{ view_kwargs|pprint }}</code></td>
|
||||
<td class="djDebugEven"><code>{{ view_urlname }}</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if cookies %}
|
||||
<h4>{% trans "Cookies" %}</h4>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col class="djdt-width-20"/>
|
||||
<col/>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Variable" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in cookies %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td><code>{{ key|pprint }}</code></td>
|
||||
<td><code>{{ value|pprint }}</code></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<h4>{% trans "No cookies" %}</h4>
|
||||
{% endif %}
|
||||
|
||||
{% if session %}
|
||||
<h4>{% trans "Session data" %}</h4>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col class="djdt-width-20"/>
|
||||
<col/>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Variable" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in session %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td><code>{{ key|pprint }}</code></td>
|
||||
<td><code>{{ value|pprint }}</code></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<h4>{% trans "No session data" %}</h4>
|
||||
{% endif %}
|
||||
|
||||
{% if get %}
|
||||
<h4>{% trans "GET data" %}</h4>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col class="djdt-width-20"/>
|
||||
<col/>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Variable" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in get %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td><code>{{ key|pprint }}</code></td>
|
||||
<td><code>{{ value|pprint }}</code></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<h4>{% trans "No GET data" %}</h4>
|
||||
{% endif %}
|
||||
|
||||
{% if post %}
|
||||
<h4>{% trans "POST data" %}</h4>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col class="djdt-width-20"/>
|
||||
<col/>
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th>{% trans "Variable" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in post %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">
|
||||
<td><code>{{ key|pprint }}</code></td>
|
||||
<td><code>{{ value|pprint }}</code></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<h4>{% trans "No POST data" %}</h4>
|
||||
{% endif %}
|
||||
17
templates/debug_toolbar/panels/settings.html
Normal file
17
templates/debug_toolbar/panels/settings.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% load i18n %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Setting" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for name, value in settings.items %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ name }}</td>
|
||||
<td><code>{{ value|pprint }}</code></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
19
templates/debug_toolbar/panels/signals.html
Normal file
19
templates/debug_toolbar/panels/signals.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{% load i18n %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Signal" %}</th>
|
||||
<th>{% trans "Providing" %}</th>
|
||||
<th>{% trans "Receivers" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for name, signal, receivers in signals %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ name|escape }}</td>
|
||||
<td>{{ signal.providing_args|join:", " }}</td>
|
||||
<td>{{ receivers|join:", " }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
102
templates/debug_toolbar/panels/sql.html
Normal file
102
templates/debug_toolbar/panels/sql.html
Normal file
@@ -0,0 +1,102 @@
|
||||
{% load i18n l10n %}{% load static from staticfiles %}
|
||||
<div class="djdt-clearfix">
|
||||
<ul class="djdt-stats">
|
||||
{% for alias, info in databases %}
|
||||
<li>
|
||||
<strong class="djdt-label"><span data-background-color="rgb({{ info.rgb_color|join:", " }})" class="djdt-color"> </span> {{ alias }}</strong>
|
||||
<span class="djdt-info">{{ info.time_spent|floatformat:"2" }} ms ({% blocktrans count info.num_queries as num %}{{ num }} query{% plural %}{{ num }} queries{% endblocktrans %}
|
||||
{% if info.duplicate_count %}
|
||||
{% blocktrans with dupes=info.duplicate_count %}including {{ dupes }} duplicates{% endblocktrans %}
|
||||
{% endif %})</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% if queries %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="djdt-color"> </th>
|
||||
<th class="query" colspan="2">{% trans "Query" %}</th>
|
||||
<th class="timeline">{% trans "Timeline" %}</th>
|
||||
<th class="djdt-time">{% trans "Time (ms)" %}</th>
|
||||
<th class="djdt-actions">{% trans "Action" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for query in queries %}
|
||||
<tr class="djDebugHoverable {% cycle 'djDebugOdd' 'djDebugEven' %}{% if query.is_slow %} djDebugRowWarning{% endif %}{% if query.starts_trans %} djDebugStartTransaction{% endif %}{% if query.ends_trans %} djDebugEndTransaction{% endif %}{% if query.in_trans %} djDebugInTransaction{% endif %}" id="sqlMain_{{ forloop.counter }}">
|
||||
<td class="djdt-color"><span data-background-color="rgb({{ query.rgb_color|join:", " }})"> </span></td>
|
||||
<td class="djdt-toggle">
|
||||
<a class="djToggleSwitch" data-toggle-name="sqlMain" data-toggle-id="{{ forloop.counter }}" data-toggle-open="+" data-toggle-close="-" href>+</a>
|
||||
</td>
|
||||
<td class="query">
|
||||
<div class="djDebugSqlWrap">
|
||||
<div class="djDebugSql">{{ query.sql|safe }}</div>
|
||||
</div>
|
||||
{% if query.duplicate_count %}
|
||||
<strong>{% blocktrans with dupes=query.duplicate_count %}Duplicated {{ dupes }} times.{% endblocktrans %}
|
||||
</strong>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="timeline">
|
||||
<div class="djDebugTimeline"><div class="djDebugLineChart{% if query.is_slow %} djDebugLineChartWarning{% endif %}" data-left="{{ query.start_offset|unlocalize }}%"><strong data-width="{{ query.width_ratio_relative|unlocalize }}%" data-background-color"{{ query.trace_color }}">{{ query.width_ratio }}%</strong></div></div>
|
||||
</td>
|
||||
<td class="djdt-time">
|
||||
{{ query.duration|floatformat:"2" }}
|
||||
</td>
|
||||
<td class="djdt-actions">
|
||||
|
||||
{% if query.params %}
|
||||
{% if query.is_select %}
|
||||
<form method="post">
|
||||
{{ query.form }}
|
||||
|
||||
<button formaction="{% url 'djdt:sql_select' %}" class="remoteCall">Sel</button>
|
||||
<button formaction="{% url 'djdt:sql_explain' %}" class="remoteCall">Expl</button>
|
||||
|
||||
{% if query.vendor == 'mysql' %}
|
||||
<button formaction="{% url 'djdt:sql_profile' %}" class="remoteCall">Prof</button>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="djUnselected djDebugHoverable {% cycle 'djDebugOdd' 'djDebugEven' %}{% if query.is_slow %} djDebugRowWarning{% endif %} djToggleDetails_{{ forloop.counter }}" id="sqlDetails_{{ forloop.counter }}">
|
||||
<td colspan="2"></td>
|
||||
<td colspan="4">
|
||||
<div class="djSQLDetailsDiv">
|
||||
<p><strong>{% trans "Connection:" %}</strong> {{ query.alias }}</p>
|
||||
{% if query.iso_level %}
|
||||
<p><strong>{% trans "Isolation level:" %}</strong> {{ query.iso_level }}</p>
|
||||
{% endif %}
|
||||
{% if query.trans_status %}
|
||||
<p><strong>{% trans "Transaction status:" %}</strong> {{ query.trans_status }}</p>
|
||||
{% endif %}
|
||||
{% if query.stacktrace %}
|
||||
<pre class="djdt-stack">{{ query.stacktrace }}</pre>
|
||||
{% endif %}
|
||||
{% if query.template_info %}
|
||||
<table>
|
||||
{% for line in query.template_info.context %}
|
||||
<tr>
|
||||
<td>{{ line.num }}</td>
|
||||
<td><code {% if line.highlight %}class="djdt-highlighted"{% endif %}>{{ line.content }}</code></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<p><strong>{{ query.template_info.name|default:_("(unknown)") }}</strong></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>{% trans "No SQL queries were recorded during this request." %}</p>
|
||||
{% endif %}
|
||||
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.sql.js' %}"></script>
|
||||
37
templates/debug_toolbar/panels/sql_explain.html
Normal file
37
templates/debug_toolbar/panels/sql_explain.html
Normal file
@@ -0,0 +1,37 @@
|
||||
{% load i18n %}{% load static from staticfiles %}
|
||||
<div class="djDebugPanelTitle">
|
||||
<a class="djDebugClose djDebugBack" href=""></a>
|
||||
<h3>{% trans "SQL explained" %}</h3>
|
||||
</div>
|
||||
<div class="djDebugPanelContent">
|
||||
<div class="djdt-scroll">
|
||||
<dl>
|
||||
<dt>{% trans "Executed SQL" %}</dt>
|
||||
<dd>{{ sql|safe }}</dd>
|
||||
<dt>{% trans "Time" %}</dt>
|
||||
<dd>{{ duration }} ms</dd>
|
||||
<dt>{% trans "Database" %}</dt>
|
||||
<dd>{{ alias }}</dd>
|
||||
</dl>
|
||||
<table class="djSqlExplain">
|
||||
<thead>
|
||||
<tr>
|
||||
{% for h in headers %}
|
||||
<th>{{ h|upper }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in result %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
{% for column in row %}
|
||||
<td>{{ column|escape }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.sql.js' %}"></script>
|
||||
44
templates/debug_toolbar/panels/sql_profile.html
Normal file
44
templates/debug_toolbar/panels/sql_profile.html
Normal file
@@ -0,0 +1,44 @@
|
||||
{% load i18n %}{% load static from staticfiles %}
|
||||
<div class="djDebugPanelTitle">
|
||||
<a class="djDebugClose djDebugBack" href=""></a>
|
||||
<h3>{% trans "SQL profiled" %}</h3>
|
||||
</div>
|
||||
<div class="djDebugPanelContent">
|
||||
<div class="djdt-scroll">
|
||||
{% if result %}
|
||||
<dl>
|
||||
<dt>{% trans "Executed SQL" %}</dt>
|
||||
<dd>{{ sql|safe }}</dd>
|
||||
<dt>{% trans "Time" %}</dt>
|
||||
<dd>{{ duration }} ms</dd>
|
||||
<dt>{% trans "Database" %}</dt>
|
||||
<dd>{{ alias }}</dd>
|
||||
</dl>
|
||||
<table class="djSqlProfile">
|
||||
<thead>
|
||||
<tr>
|
||||
{% for h in headers %}
|
||||
<th>{{ h|upper }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in result %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
{% for column in row %}
|
||||
<td>{{ column|escape }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<dl>
|
||||
<dt>{% trans "Error" %}</dt>
|
||||
<dd>{{ result_error }}</dd>
|
||||
</dl>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.sql.js' %}"></script>
|
||||
41
templates/debug_toolbar/panels/sql_select.html
Normal file
41
templates/debug_toolbar/panels/sql_select.html
Normal file
@@ -0,0 +1,41 @@
|
||||
{% load i18n %}{% load static from staticfiles %}
|
||||
<div class="djDebugPanelTitle">
|
||||
<a class="djDebugClose djDebugBack" href=""></a>
|
||||
<h3>{% trans "SQL selected" %}</h3>
|
||||
</div>
|
||||
<div class="djDebugPanelContent">
|
||||
<div class="djdt-scroll">
|
||||
<dl>
|
||||
<dt>{% trans "Executed SQL" %}</dt>
|
||||
<dd>{{ sql|safe }}</dd>
|
||||
<dt>{% trans "Time" %}</dt>
|
||||
<dd>{{ duration }} ms</dd>
|
||||
<dt>{% trans "Database" %}</dt>
|
||||
<dd>{{ alias }}</dd>
|
||||
</dl>
|
||||
{% if result %}
|
||||
<table class="djSqlSelect">
|
||||
<thead>
|
||||
<tr>
|
||||
{% for h in headers %}
|
||||
<th>{{ h|upper }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in result %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
{% for column in row %}
|
||||
<td>{{ column|escape }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>{% trans "Empty set" %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.sql.js' %}"></script>
|
||||
57
templates/debug_toolbar/panels/staticfiles.html
Normal file
57
templates/debug_toolbar/panels/staticfiles.html
Normal file
@@ -0,0 +1,57 @@
|
||||
{% load i18n %}
|
||||
{% load static from staticfiles%}
|
||||
|
||||
<h4>{% blocktrans count staticfiles_dirs|length as dirs_count %}Static file path{% plural %}Static file paths{% endblocktrans %}</h4>
|
||||
{% if staticfiles_dirs %}
|
||||
<ol>
|
||||
{% for prefix, staticfiles_dir in staticfiles_dirs %}
|
||||
<li>{{ staticfiles_dir }}{% if prefix %} {% blocktrans %}(prefix {{ prefix }}){% endblocktrans %}{% endif %}</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
{% else %}
|
||||
<p>{% trans "None" %}</p>
|
||||
{% endif %}
|
||||
|
||||
<h4>{% blocktrans count staticfiles_apps|length as apps_count %}Static file app{% plural %}Static file apps{% endblocktrans %}</h4>
|
||||
{% if staticfiles_apps %}
|
||||
<ol>
|
||||
{% for static_app in staticfiles_apps %}
|
||||
<li>{{ static_app }}</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
{% else %}
|
||||
<p>{% trans "None" %}</p>
|
||||
{% endif %}
|
||||
|
||||
<h4>{% blocktrans count staticfiles|length as staticfiles_count %}Static file{% plural %}Static files{% endblocktrans %}</h4>
|
||||
{% if staticfiles %}
|
||||
<dl>
|
||||
{% for staticfile in staticfiles %}
|
||||
<dt><strong><a class="toggleTemplate" href="{{ staticfile.url }}">{{ staticfile }}</a></strong></dt>
|
||||
<dd><samp>{{ staticfile.real_path }}</samp></dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
{% else %}
|
||||
<p>{% trans "None" %}</p>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% for finder, payload in staticfiles_finders.items %}
|
||||
<h4>{{ finder }} ({% blocktrans count payload|length as payload_count %}{{ payload_count }} file{% plural %}{{ payload_count }} files{% endblocktrans %})</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans 'Path' %}</th>
|
||||
<th>{% trans 'Location' %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for path, real_path in payload %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ path }}</td>
|
||||
<td>{{ real_path }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endfor %}
|
||||
14
templates/debug_toolbar/panels/template_source.html
Normal file
14
templates/debug_toolbar/panels/template_source.html
Normal file
@@ -0,0 +1,14 @@
|
||||
{% load i18n %}
|
||||
<div class="djDebugPanelTitle">
|
||||
<a class="djDebugClose djDebugBack" href=""></a>
|
||||
<h3>{% trans "Template source:" %} <code>{{ template_name }}</code></h3>
|
||||
</div>
|
||||
<div class="djDebugPanelContent">
|
||||
<div class="djdt-scroll">
|
||||
{% if not source.pygmentized %}
|
||||
<code>{{ source }}</code>
|
||||
{% else %}
|
||||
{{ source }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
46
templates/debug_toolbar/panels/templates.html
Normal file
46
templates/debug_toolbar/panels/templates.html
Normal file
@@ -0,0 +1,46 @@
|
||||
{% load i18n %}{% load static from staticfiles %}
|
||||
<h4>{% blocktrans count template_dirs|length as template_count %}Template path{% plural %}Template paths{% endblocktrans %}</h4>
|
||||
{% if template_dirs %}
|
||||
<ol>
|
||||
{% for template in template_dirs %}
|
||||
<li>{{ template }}</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
{% else %}
|
||||
<p>{% trans "None" %}</p>
|
||||
{% endif %}
|
||||
|
||||
<h4>{% blocktrans count templates|length as template_count %}Template{% plural %}Templates{% endblocktrans %}</h4>
|
||||
{% if templates %}
|
||||
<dl>
|
||||
{% for template in templates %}
|
||||
<dt><strong><a class="remoteCall toggleTemplate" href="{% url 'djdt:template_source' %}?template={{ template.template.name }}">{{ template.template.name|addslashes }}</a></strong></dt>
|
||||
<dd><samp>{{ template.template.origin_name|addslashes }}</samp></dd>
|
||||
{% if template.context %}
|
||||
<dd>
|
||||
<div class="djTemplateShowContextDiv"><a class="djTemplateShowContext"><span class="toggleArrow">▶</span> {% trans "Toggle context" %}</a></div>
|
||||
<div class="djTemplateHideContextDiv" hidden="hidden"><code>{{ template.context }}</code></div>
|
||||
</dd>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</dl>
|
||||
{% else %}
|
||||
<p>{% trans "None" %}</p>
|
||||
{% endif %}
|
||||
|
||||
<h4>{% blocktrans count context_processors|length as context_processors_count %}Context processor{% plural %}Context processors{% endblocktrans %}</h4>
|
||||
{% if context_processors %}
|
||||
<dl>
|
||||
{% for key, value in context_processors.items %}
|
||||
<dt><strong>{{ key|escape }}</strong></dt>
|
||||
<dd>
|
||||
<div class="djTemplateShowContextDiv"><a class="djTemplateShowContext"><span class="toggleArrow">▶</span> {% trans "Toggle context" %}</a></div>
|
||||
<div class="djTemplateHideContextDiv" hidden="hidden"><code>{{ value|escape }}</code></div>
|
||||
</dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
{% else %}
|
||||
<p>{% trans "None" %}</p>
|
||||
{% endif %}
|
||||
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.template.js' %}"></script>
|
||||
44
templates/debug_toolbar/panels/timer.html
Normal file
44
templates/debug_toolbar/panels/timer.html
Normal file
@@ -0,0 +1,44 @@
|
||||
{% load i18n %}{% load static from staticfiles %}
|
||||
<h4>{% trans "Resource usage" %}</h4>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col class="djdt-width-20"/>
|
||||
<col/>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Resource" %}</th>
|
||||
<th>{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in rows %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ key|escape }}</td>
|
||||
<td>{{ value|escape }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- This hidden div is populated and displayed by code in toolbar.timer.js -->
|
||||
<div id="djDebugBrowserTiming" hidden="hidden">
|
||||
<h4>{% trans "Browser timing" %}</h4>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col class="djdt-width-20"/>
|
||||
<col class="djdt-width-60"/>
|
||||
<col class="djdt-width-20"/>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Timing attribute" %}</th>
|
||||
<th class="timeline">{% trans "Timeline" %}</th>
|
||||
<th class="djdt-time">{% trans "Milliseconds since navigation start (+length)" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="djDebugBrowserTimingTableBody">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script src="{% static 'debug_toolbar/js/toolbar.timer.js' %}"></script>
|
||||
17
templates/debug_toolbar/panels/versions.html
Normal file
17
templates/debug_toolbar/panels/versions.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% load i18n %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Name" %}</th>
|
||||
<th>{% trans "Version" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for package, version in versions.items %}
|
||||
<tr class="{% cycle 'djDebugOdd' 'djDebugEven' %}">
|
||||
<td>{{ package }}</td>
|
||||
<td>{{ version }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
Reference in New Issue
Block a user