Include on single correspondents

This commit is contained in:
shamoon 2024-05-20 12:21:45 -07:00
parent 979d0acb75
commit d88085b12f
2 changed files with 18 additions and 1 deletions

View File

@ -98,7 +98,7 @@ class TestApiObjects(DirectoriesMixin, APITestCase):
WHEN: WHEN:
- API is called - API is called
THEN: THEN:
- Last correspondence date is returned only if requested - Last correspondence date is returned only if requested for list, and for detail
""" """
Document.objects.create( Document.objects.create(
@ -114,6 +114,7 @@ class TestApiObjects(DirectoriesMixin, APITestCase):
checksum="456", checksum="456",
) )
# Only if requested for list
response = self.client.get( response = self.client.get(
"/api/correspondents/", "/api/correspondents/",
) )
@ -131,6 +132,16 @@ class TestApiObjects(DirectoriesMixin, APITestCase):
results[0]["last_correspondence"], results[0]["last_correspondence"],
) )
# Included in detail by default
response = self.client.get(
f"/api/correspondents/{self.c1.id}/",
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIn(
"2022-01-02",
response.data["last_correspondence"],
)
class TestApiStoragePaths(DirectoriesMixin, APITestCase): class TestApiStoragePaths(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/storage_paths/" ENDPOINT = "/api/storage_paths/"

View File

@ -279,6 +279,12 @@ class CorrespondentViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
) )
return super().list(request, *args, **kwargs) return super().list(request, *args, **kwargs)
def retrieve(self, request, *args, **kwargs):
self.queryset = self.queryset.annotate(
last_correspondence=Max("documents__created"),
)
return super().retrieve(request, *args, **kwargs)
class TagViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin): class TagViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
model = Tag model = Tag