Navbar returns a Safe node; drop redundant filter_presets mark_safe
Navbar is static chrome (a few reverse() URLs in otherwise-fixed markup), so it now returns a single Safe node wrapping that markup instead of a mark_safe string — consistent with "trusted HTML is a Safe node," and a full element tree would be ~80 lines of nesting for no gain (it owns no component JS). Page() interpolates it via str() exactly as before. filter_presets.list_presets returned HttpResponse(mark_safe(...)); HttpResponse never escapes its body, so the mark_safe was pure noise — dropped. The mark_safe calls that remain are all load-bearing and not tree children: the node engine itself (core: how a node emits its SafeString), the script-tag / scripts= string helpers, and Page()'s final document string. Full suite green (445). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,6 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.urls import reverse
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
from games.models import FilterPreset
|
||||
|
||||
@@ -40,7 +39,7 @@ def list_presets(request: HttpRequest) -> HttpResponse:
|
||||
if not items:
|
||||
items = ['<li class="px-4 py-2 text-sm text-body italic">No saved presets</li>']
|
||||
|
||||
return HttpResponse(mark_safe(f'<ul class="py-1">{"".join(items)}</ul>'))
|
||||
return HttpResponse(f'<ul class="py-1">{"".join(items)}</ul>')
|
||||
|
||||
|
||||
@login_required
|
||||
|
||||
Reference in New Issue
Block a user