mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-08 07:45:32 +01:00
Enhancement: only include correspondent 'last_correspondence' if requested (#6792)
This commit is contained in:
parent
c0c44b512c
commit
8abb0cd75d
9 changed files with 131 additions and 49 deletions
|
|
@ -253,14 +253,7 @@ class PermissionsAwareDocumentCountMixin(PassUserMixin):
|
|||
class CorrespondentViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
|
||||
model = Correspondent
|
||||
|
||||
queryset = (
|
||||
Correspondent.objects.prefetch_related("documents")
|
||||
.annotate(
|
||||
last_correspondence=Max("documents__created"),
|
||||
)
|
||||
.select_related("owner")
|
||||
.order_by(Lower("name"))
|
||||
)
|
||||
queryset = Correspondent.objects.select_related("owner").order_by(Lower("name"))
|
||||
|
||||
serializer_class = CorrespondentSerializer
|
||||
pagination_class = StandardPagination
|
||||
|
|
@ -279,6 +272,19 @@ class CorrespondentViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
|
|||
"last_correspondence",
|
||||
)
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
if request.query_params.get("last_correspondence", None):
|
||||
self.queryset = self.queryset.annotate(
|
||||
last_correspondence=Max("documents__created"),
|
||||
)
|
||||
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):
|
||||
model = Tag
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue