73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
|
from django.http import HttpResponseBadRequest, JsonResponse
|
||
|
from django.template.loader import render_to_string
|
||
|
|
||
|
from debug_toolbar.decorators import render_with_toolbar_language, require_show_toolbar
|
||
|
from debug_toolbar.panels.history.forms import HistoryStoreForm
|
||
|
from debug_toolbar.toolbar import DebugToolbar
|
||
|
|
||
|
|
||
|
@require_show_toolbar
|
||
|
@render_with_toolbar_language
|
||
|
def history_sidebar(request):
|
||
|
"""Returns the selected debug toolbar history snapshot."""
|
||
|
form = HistoryStoreForm(request.GET)
|
||
|
|
||
|
if form.is_valid():
|
||
|
store_id = form.cleaned_data["store_id"]
|
||
|
toolbar = DebugToolbar.fetch(store_id)
|
||
|
exclude_history = form.cleaned_data["exclude_history"]
|
||
|
context = {}
|
||
|
if toolbar is None:
|
||
|
# When the store_id has been popped already due to
|
||
|
# RESULTS_CACHE_SIZE
|
||
|
return JsonResponse(context)
|
||
|
for panel in toolbar.panels:
|
||
|
if exclude_history and not panel.is_historical:
|
||
|
continue
|
||
|
panel_context = {"panel": panel}
|
||
|
context[panel.panel_id] = {
|
||
|
"button": render_to_string(
|
||
|
"debug_toolbar/includes/panel_button.html", panel_context
|
||
|
),
|
||
|
"content": render_to_string(
|
||
|
"debug_toolbar/includes/panel_content.html", panel_context
|
||
|
),
|
||
|
}
|
||
|
return JsonResponse(context)
|
||
|
return HttpResponseBadRequest("Form errors")
|
||
|
|
||
|
|
||
|
@require_show_toolbar
|
||
|
@render_with_toolbar_language
|
||
|
def history_refresh(request):
|
||
|
"""Returns the refreshed list of table rows for the History Panel."""
|
||
|
form = HistoryStoreForm(request.GET)
|
||
|
|
||
|
if form.is_valid():
|
||
|
requests = []
|
||
|
# Convert to list to handle mutations happening in parallel
|
||
|
for id, toolbar in list(DebugToolbar._store.items()):
|
||
|
requests.append(
|
||
|
{
|
||
|
"id": id,
|
||
|
"content": render_to_string(
|
||
|
"debug_toolbar/panels/history_tr.html",
|
||
|
{
|
||
|
"id": id,
|
||
|
"store_context": {
|
||
|
"toolbar": toolbar,
|
||
|
"form": HistoryStoreForm(
|
||
|
initial={
|
||
|
"store_id": id,
|
||
|
"exclude_history": True,
|
||
|
}
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
),
|
||
|
}
|
||
|
)
|
||
|
|
||
|
return JsonResponse({"requests": requests})
|
||
|
return HttpResponseBadRequest("Form errors")
|