Skip to content

Commit b6a377b

Browse files
committed
Dynamic values for root_tag_extra_attrs
1 parent 4068382 commit b6a377b

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

debug_toolbar/templates/debug_toolbar/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
data-render-panel-url="{% url 'djdt:render_panel' %}"
1717
{% endif %}
1818
data-default-show="{% if toolbar.config.SHOW_COLLAPSED %}false{% else %}true{% endif %}"
19-
{{ toolbar.config.ROOT_TAG_EXTRA_ATTRS|safe }}>
19+
{{ toolbar.root_tag_extra_attrs|safe }}>
2020
<div class="djdt-hidden" id="djDebugToolbar">
2121
<ul id="djDebugPanelList">
2222
<li><a id="djHideToolBarButton" href="#" title="{% trans 'Hide toolbar' %}">{% trans "Hide" %} »</a></li>

debug_toolbar/toolbar.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def __init__(self, request, get_response):
3434
self.stats = {}
3535
self.server_timing_stats = {}
3636
self.store_id = None
37+
self.root_tag_extra_attrs = self.config["ROOT_TAG_EXTRA_ATTRS"]
3738
self.should_render_css = self.should_render_js = True
3839

3940
# Manage panels

tests/test_integration.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,25 @@ def configure_toolbar(self, request, toolbar):
121121
self.assertNotContains(response, b"<link")
122122
self.assertNotContains(response, b"<script")
123123

124+
def test_dynamic_root_extra_attr(self):
125+
def get_response(request):
126+
return regular_view(request, "nani")
127+
128+
class DynamicExtraAttrMiddleware(DebugToolbarMiddleware):
129+
def configure_toolbar(self, request, toolbar):
130+
if request.headers.get("test") == "omae":
131+
toolbar.root_tag_extra_attrs = "omae wa"
132+
if request.headers.get("test") == "mou":
133+
toolbar.root_tag_extra_attrs = "mou shindeiru"
134+
135+
request = rf.get("/", HTTP_TEST="omae")
136+
response = DynamicExtraAttrMiddleware(get_response)(request)
137+
self.assertContains(response, b"omae wa")
138+
139+
request = rf.get("/", HTTP_TEST="mou")
140+
response = DynamicExtraAttrMiddleware(get_response)(request)
141+
self.assertContains(response, b"mou shindeiru")
142+
124143
def test_cache_page(self):
125144
# Clear the cache before testing the views. Other tests that use cached_view
126145
# may run earlier and cause fewer cache calls.

0 commit comments

Comments
 (0)