From e0eb6ea5766fe1315d350fa56662f5abee4cf0b8 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 7 Jan 2026 13:02:43 -0800 Subject: [PATCH] Normalize and casefold input in TitleContentFilter --- src/documents/filters.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/documents/filters.py b/src/documents/filters.py index 54f3c1fa0..bf31d360c 100644 --- a/src/documents/filters.py +++ b/src/documents/filters.py @@ -41,6 +41,7 @@ from documents.models import PaperlessTask from documents.models import ShareLink from documents.models import StoragePath from documents.models import Tag +from documents.utils import normalize_nfc if TYPE_CHECKING: from collections.abc import Callable @@ -162,7 +163,11 @@ class TitleContentFilter(Filter): def filter(self, qs, value): value = value.strip() if isinstance(value, str) else value if value: - return qs.filter(Q(title__icontains=value) | Q(content__icontains=value)) + normalized = normalize_nfc(value) or "" + folded = normalized.casefold() + return qs.filter( + Q(title__icontains=folded) | Q(content__icontains=folded), + ) else: return qs