Skip to content

Commit 6b10f92

Browse files
committed
Address review feedback
1 parent 0234ecb commit 6b10f92

File tree

5 files changed

+30
-41
lines changed

5 files changed

+30
-41
lines changed

django_mongodb_extensions/mql_panel/panel.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,20 @@ def content(self):
8181

8282
def disable_instrumentation(self):
8383
for connection in connections.all():
84-
if hasattr(connection, "_djdt_logger"):
85-
connection._djdt_logger = None
84+
if hasattr(connection, "_mql_djdt_logger"):
85+
connection._mql_djdt_logger = None
8686

8787
def enable_instrumentation(self):
8888
# Only patch MongoDB connections (those with get_collection method).
8989
# This allows the panel to work in multi-database setups with
9090
# both MongoDB and relational databases.
91+
#
92+
# Use _mql_djdt_logger (not _djdt_logger) to avoid conflicting with the
93+
# SQL panel, which sets _djdt_logger on all connections regardless of type.
9194
for connection in connections.all():
9295
if hasattr(connection, "get_collection"):
9396
patch_get_collection(connection)
94-
connection._djdt_logger = self
97+
connection._mql_djdt_logger = self
9598

9699
def generate_stats(self, request, response):
97100
duplicate_query_groups = defaultdict(list)

django_mongodb_extensions/mql_panel/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ def patch_get_collection(connection):
8585
connection._original_get_collection = connection.get_collection
8686

8787
def get_collection(self, name, **kwargs):
88-
logger = getattr(self, "_djdt_logger", None)
88+
# Use _mql_djdt_logger (not _djdt_logger) to avoid conflicting with the
89+
# SQL panel, which sets _djdt_logger on all connections.
90+
logger = getattr(self, "_mql_djdt_logger", None)
8991
if logger:
9092
collection = self._original_get_collection(name, **kwargs)
9193
return DebugToolbarWrapper(self, collection, logger)

django_mongodb_extensions/templates/mql_panel/mql_query.html

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,7 @@ <h4>{% translate "Query Results" %}</h4>
3434
<tr>
3535
<th>{{ sub.key }}</th>
3636
<td>
37-
{% if sub.type == "dict" %}
38-
<table class="subtable">
39-
{% for inner in sub.value %}
40-
<tr><th>{{ inner.key }}</th><td>{{ inner.value }}</td></tr>
41-
{% endfor %}
42-
</table>
43-
{% elif sub.type == "list" %}
44-
<ul>
45-
{% for inner in sub.value %}
46-
<li>{{ inner.value }}</li>
47-
{% endfor %}
48-
</ul>
49-
{% else %}
50-
{{ sub.value }}
51-
{% endif %}
37+
{% include 'mql_panel/subtype_value.html' %}
5238
</td>
5339
</tr>
5440
{% endfor %}
@@ -57,21 +43,7 @@ <h4>{% translate "Query Results" %}</h4>
5743
<ul>
5844
{% for sub in column.value %}
5945
<li>
60-
{% if sub.type == "dict" %}
61-
<table class="subtable">
62-
{% for inner in sub.value %}
63-
<tr><th>{{ inner.key }}</th><td>{{ inner.value }}</td></tr>
64-
{% endfor %}
65-
</table>
66-
{% elif sub.type == "list" %}
67-
<ul>
68-
{% for inner in sub.value %}
69-
<li>{{ inner.value }}</li>
70-
{% endfor %}
71-
</ul>
72-
{% else %}
73-
{{ sub.value }}
74-
{% endif %}
46+
{% include 'mql_panel/subtype_value.html' %}
7547
</li>
7648
{% endfor %}
7749
</ul>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{% if sub.type == "dict" %}
2+
<table class="subtable">
3+
{% for inner in sub.value %}
4+
<tr><th>{{ inner.key }}</th><td>{{ inner.value }}</td></tr>
5+
{% endfor %}
6+
</table>
7+
{% elif sub.type == "list" %}
8+
<ul>
9+
{% for inner in sub.value %}
10+
<li>{{ inner.value }}</li>
11+
{% endfor %}
12+
</ul>
13+
{% else %}
14+
{{ sub.value }}
15+
{% endif %}

tests/mql_panel/test_forms.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import datetime
2-
import json
32

4-
from bson import ObjectId, json_util
3+
from bson import ObjectId
54
from django.test import TestCase
65

76
from django_mongodb_extensions.mql_panel.forms import MQLQueryForm
@@ -30,20 +29,18 @@ def test_simple_fields(self):
3029
self.assertEqual(self.form._format_cell_value(input_value), expected)
3130

3231
def test_objectid(self):
33-
"""MongoDB ObjectId from a document."""
34-
oid = "69cd52da72ad0703d3dfef51"
32+
oid = ObjectId("69cd52da72ad0703d3dfef51")
3533
result = self.form._format_cell_value(oid)
36-
# ObjectIds serialize to {"$oid": "<id>"} which is single-key
3734
self.assertIs(result["is_json"], False)
38-
self.assertEqual(result["value"], oid)
35+
self.assertEqual(result["value"], "69cd52da72ad0703d3dfef51")
3936

4037
def test_datetime(self):
4138
"""Datetime values as they might appear in a MongoDB doc."""
4239
dt = datetime.datetime(2024, 1, 1, 12, 30)
4340
result = self.form._format_cell_value(dt)
4441
# Datetimes serialize to {"$date": timestamp_ms} which is single-key dict
4542
self.assertIs(result["is_json"], False)
46-
self.assertEqual(result["value"], str(json.loads(json_util.dumps(dt))["$date"]))
43+
self.assertEqual(result["value"], "2024-01-01T12:30:00Z")
4744

4845
def test_embedded_document(self):
4946
embedded_doc = {

0 commit comments

Comments
 (0)