From 2513b64c1d0df62300670fe8fbc04b47c79a46c5 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 7 May 2026 07:21:41 -0700 Subject: [PATCH] Fix: exclude versions from stats count --- src/documents/tests/test_api_documents.py | 29 +++++++++++++++++++++++ src/documents/views.py | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index e7892072a..34c501192 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -1305,6 +1305,35 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(response.data["document_type_count"], 1) self.assertEqual(response.data["storage_path_count"], 2) + def test_statistics_excludes_document_versions(self) -> None: + root = Document.objects.create( + title="root", + checksum="A", + mime_type="application/pdf", + content="root", + ) + version = Document.objects.create( + title="version", + checksum="B", + mime_type="application/pdf", + content="version", + root_document=root, + version_index=1, + ) + tag_inbox = Tag.objects.create(name="t1", is_inbox_tag=True) + version.tags.add(tag_inbox) + + response = self.client.get("/api/statistics/") + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["documents_total"], 1) + self.assertEqual(response.data["documents_inbox"], 0) + self.assertEqual(response.data["character_count"], 4) + self.assertEqual( + response.data["document_file_type_counts"][0]["mime_type_count"], + 1, + ) + def test_statistics_no_inbox_tag(self) -> None: Document.objects.create(title="none1", checksum="A") diff --git a/src/documents/views.py b/src/documents/views.py index fde9a9106..a60bbc30e 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -3614,7 +3614,7 @@ class StatisticsView(GenericAPIView[Any]): "documents.view_document", Document, ) - ) + ).filter(root_document__isnull=True) tags = ( Tag.objects.all() if can_view_global_stats