mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-11-17 04:16:54 -06:00
Fixhancement: trim whitespace for some text searches (#11357)
This commit is contained in:
@@ -160,6 +160,7 @@ class InboxFilter(Filter):
|
||||
@extend_schema_field(serializers.CharField)
|
||||
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))
|
||||
else:
|
||||
@@ -214,6 +215,7 @@ class CustomFieldFilterSet(FilterSet):
|
||||
@extend_schema_field(serializers.CharField)
|
||||
class CustomFieldsFilter(Filter):
|
||||
def filter(self, qs, value):
|
||||
value = value.strip() if isinstance(value, str) else value
|
||||
if value:
|
||||
fields_with_matching_selects = CustomField.objects.filter(
|
||||
extra_data__icontains=value,
|
||||
@@ -244,6 +246,7 @@ class CustomFieldsFilter(Filter):
|
||||
|
||||
class MimeTypeFilter(Filter):
|
||||
def filter(self, qs, value):
|
||||
value = value.strip() if isinstance(value, str) else value
|
||||
if value:
|
||||
return qs.filter(mime_type__icontains=value)
|
||||
else:
|
||||
|
||||
@@ -941,6 +941,23 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
results = response.data["results"]
|
||||
self.assertEqual(len(results), 0)
|
||||
|
||||
def test_documents_title_content_filter_strips_boundary_whitespace(self):
|
||||
doc = Document.objects.create(
|
||||
title="Testwort",
|
||||
content="",
|
||||
checksum="A",
|
||||
mime_type="application/pdf",
|
||||
)
|
||||
|
||||
response = self.client.get(
|
||||
"/api/documents/",
|
||||
{"title_content": " Testwort "},
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
results = response.data["results"]
|
||||
self.assertEqual(len(results), 1)
|
||||
self.assertEqual(results[0]["id"], doc.id)
|
||||
|
||||
def test_document_permissions_filters(self):
|
||||
"""
|
||||
GIVEN:
|
||||
|
||||
@@ -1863,7 +1863,7 @@ class SearchAutoCompleteView(GenericAPIView):
|
||||
user = self.request.user if hasattr(self.request, "user") else None
|
||||
|
||||
if "term" in request.query_params:
|
||||
term = request.query_params["term"]
|
||||
term = request.query_params["term"].strip()
|
||||
else:
|
||||
return HttpResponseBadRequest("Term required")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user