From 649923d63958627d603c7bcf0b89b0ea99bfbae4 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 5 Sep 2026 18:57:37 -0700 Subject: [PATCH] Add document_title to the backend sharelink response --- src/documents/serialisers.py | 6 ++++++ src/documents/tests/test_api_documents.py | 15 +++++++++++++++ src/documents/views.py | 11 +++++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index f84ee9922..611256cf0 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -2812,6 +2812,11 @@ class AcknowledgeTasksViewSerializer(serializers.Serializer[dict[str, Any]]): class ShareLinkSerializer(OwnedObjectSerializer): + document_title = serializers.CharField( + source="document.title", + read_only=True, + ) + class Meta: model = ShareLink fields = ( @@ -2820,6 +2825,7 @@ class ShareLinkSerializer(OwnedObjectSerializer): "expiration", "slug", "document", + "document_title", "file_version", ) diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index b67b87772..30ddb4af0 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -3735,6 +3735,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): }, ) self.assertEqual(resp.status_code, status.HTTP_201_CREATED) + self.assertEqual(resp.data["document_title"], doc.title) resp = self.client.post( "/api/share_links/", @@ -3745,6 +3746,17 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): }, ) self.assertEqual(resp.status_code, status.HTTP_201_CREATED) + self.assertEqual(resp.data["document_title"], doc.title) + + response = self.client.get("/api/share_links/", format="json") + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 2) + self.assertTrue( + all( + link["document_title"] == doc.title for link in response.data["results"] + ), + ) response = self.client.get( f"/api/documents/{doc.pk}/share_links/", @@ -3756,6 +3768,9 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): resp_data = response.json() self.assertEqual(len(resp_data), 2) + self.assertTrue( + all(link["document_title"] == doc.title for link in resp_data), + ) self.assertGreater(len(resp_data[1]["slug"]), 0) self.assertIsNone(resp_data[1]["expiration"]) diff --git a/src/documents/views.py b/src/documents/views.py index 4d0a16c4a..5f1debbb1 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -1888,7 +1888,14 @@ class DocumentViewSet( now = timezone.now() links = ( ShareLink.objects.filter(document=doc) - .only("pk", "created", "expiration", "slug") + .select_related("document") + .only( + "pk", + "created", + "expiration", + "slug", + "document__title", + ) .exclude(expiration__lt=now) .order_by("-created") ) @@ -4553,7 +4560,7 @@ class ShareLinkViewSet( ): model = ShareLink - queryset = ShareLink.objects.all() + queryset = ShareLink.objects.select_related("document") serializer_class = ShareLinkSerializer pagination_class = StandardPagination