Skip to content

Commit d16e411

Browse files
committed
Remove redundant has_duplicates param from the header
1 parent 15d02b9 commit d16e411

File tree

6 files changed

+10
-18
lines changed

6 files changed

+10
-18
lines changed

chrome-extension/panel.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
db_time: dbTime,
8888
app_time: appTime,
8989
total_time: dbTime + appTime,
90-
has_duplicates: !!devbarHeaders['devbar-duplicates'],
9190
duplicates: []
9291
};
9392
}
@@ -218,12 +217,12 @@
218217
${renderMetric('queries', data.count ?? 0)}
219218
${renderMetric('db', formatMs(data.db_time), 'ms')}
220219
${renderMetric('app', formatMs(data.app_time), 'ms')}
221-
${data.has_duplicates ? `<span class="dup-warn">⚠ ${data.duplicates?.length || ''} dup</span>` : ''}
220+
${data.duplicates?.length ? `<span class="dup-warn">⚠ ${data.duplicates.length} dup</span>` : ''}
222221
<span class="metric-label">${formatTime(currentRequest.timestamp)}</span>
223222
</div>
224223
</div>`;
225224

226-
if (data.has_duplicates && data.duplicates?.length > 0) {
225+
if (data.duplicates?.length > 0) {
227226
html += `<div class="dups">${data.duplicates.map(dup =>
228227
`<div class="dup"><code>${escapeHtml(dup.sql)}</code> <span class="dup-time">${(dup.duration ?? 0).toFixed(1)}ms</span></div>`
229228
).join('')}</div>`;
@@ -256,7 +255,7 @@
256255
${renderMetric('queries', req.data.count ?? 0)}
257256
${renderMetric('db', formatMs(req.data.db_time), 'ms')}
258257
${renderMetric('app', formatMs(req.data.app_time), 'ms')}
259-
${req.data.has_duplicates ? `<span class="dup-warn">⚠</span>` : ''}
258+
${req.data.duplicates?.length ? `<span class="dup-warn">⚠</span>` : ''}
260259
<span class="metric-label">${formatTime(req.timestamp)}</span>
261260
</div>
262261
</div>`;

src/django_devbar/middleware.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,13 @@ def __call__(self, request):
4646
stats["python_time"] = python_time
4747
stats["total_time"] = total_time
4848

49-
level = "warn" if stats["has_duplicates"] else "ok"
50-
5149
if get_enable_devtools_data():
5250
self._add_devtools_data_header(response, stats)
5351

5452
self._add_server_timing_header(response, stats)
5553

5654
if get_show_bar() and self._can_inject(response):
57-
self._inject_devbar(response, stats, level)
55+
self._inject_devbar(response, stats)
5856

5957
return response
6058

@@ -64,7 +62,6 @@ def _add_devtools_data_header(self, response, stats):
6462
"db_time": stats["duration"],
6563
"app_time": stats["python_time"],
6664
"total_time": stats["total_time"],
67-
"has_duplicates": stats["has_duplicates"],
6865
}
6966
if stats.get("duplicate_queries"):
7067
extension_data["duplicates"] = stats["duplicate_queries"]
@@ -89,7 +86,7 @@ def _can_inject(self, response):
8986
return False
9087
return hasattr(response, "content")
9188

92-
def _inject_devbar(self, response, stats, level):
89+
def _inject_devbar(self, response, stats):
9390
content = response.content
9491
matches = list(BODY_CLOSE_RE.finditer(content))
9592
if not matches:
@@ -104,7 +101,6 @@ def _inject_devbar(self, response, stats, level):
104101
Context(
105102
{
106103
"position": get_position(),
107-
"level": level,
108104
"db_time": stats["duration"],
109105
"app_time": stats["python_time"],
110106
"query_count": stats["count"],

src/django_devbar/templates/django_devbar/devbar.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
color: #f5f5f5;
1515
}
1616
#django-devbar.level-warn { border-left: 3px solid #f59e0b; }
17+
#django-devbar.has-duplicates { border-left: 3px solid #f59e0b; }
1718
#django-devbar span { opacity: 0.7; }
1819
#django-devbar strong { opacity: 1; font-weight: 600; }
1920
#django-devbar details { display: inline; position: relative; }
@@ -85,7 +86,7 @@
8586
}
8687
@media (max-width: 640px) { #django-devbar { display: none; } }
8788
</style>
88-
<div id="django-devbar" class="level-{{ level }}">
89+
<div id="django-devbar"{% if duplicates_html %} class="has-duplicates"{% endif %}>
8990
<span>queries</span> <strong>{{ query_count }}</strong> <span>·</span>
9091
<span>db</span> <strong>{{ db_time|floatformat:0 }}ms</strong> <span>·</span>
9192
<span>app</span> <strong>{{ app_time|floatformat:0 }}ms</strong>{{ duplicates_html|safe }}

src/django_devbar/tracker.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ def get_stats():
1818
return {
1919
"count": _query_count.get(),
2020
"duration": _query_duration.get(),
21-
"has_duplicates": bool(_duplicate_log.get()),
2221
"duplicate_queries": _duplicate_log.get(),
2322
}
2423

tests/test_middleware.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ def test_duplicate_data_in_json_header(self, rf, monkeypatch, settings):
155155
lambda: {
156156
"count": 3,
157157
"duration": 10.0,
158-
"has_duplicates": True,
159158
"duplicate_queries": [
160159
{"sql": "SELECT * FROM foo", "params": "(1,)", "duration": 5.0},
161160
{"sql": "SELECT * FROM bar", "params": "(2,)", "duration": 3.0},
@@ -173,7 +172,6 @@ def get_response(request):
173172
response = middleware(request)
174173

175174
data = json.loads(response["DevBar-Data"])
176-
assert data["has_duplicates"] is True
177175
assert len(data["duplicates"]) == 2
178176

179177
def test_server_timing_header_always_present(self, rf, monkeypatch):
@@ -183,7 +181,6 @@ def test_server_timing_header_always_present(self, rf, monkeypatch):
183181
lambda: {
184182
"count": 3,
185183
"duration": 12.5,
186-
"has_duplicates": False,
187184
"duplicate_queries": [],
188185
},
189186
)

tests/test_tracker.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def mock_execute(*args):
5656
tracker.tracking_wrapper(mock_execute, "SELECT 1", [], False, {})
5757
tracker.tracking_wrapper(mock_execute, "SELECT 2", [], False, {})
5858

59-
assert tracker.get_stats()["has_duplicates"] is False
59+
assert len(tracker.get_stats()["duplicate_queries"]) == 0
6060

6161
def test_no_duplicates_for_same_sql_different_params(self):
6262
tracker.reset()
@@ -71,7 +71,7 @@ def mock_execute(*args):
7171
mock_execute, "SELECT * FROM t WHERE id=%s", [2], False, {}
7272
)
7373

74-
assert tracker.get_stats()["has_duplicates"] is False
74+
assert len(tracker.get_stats()["duplicate_queries"]) == 0
7575

7676
def test_duplicates_detected_same_sql_same_params(self):
7777
tracker.reset()
@@ -86,4 +86,4 @@ def mock_execute(*args):
8686
mock_execute, "SELECT * FROM t WHERE id=%s", [1], False, {}
8787
)
8888

89-
assert tracker.get_stats()["has_duplicates"] is True
89+
assert len(tracker.get_stats()["duplicate_queries"]) == 1

0 commit comments

Comments
 (0)