Add head_version

This commit is contained in:
shamoon
2025-02-26 09:25:35 -08:00
parent f431578f43
commit 26757e4930
4 changed files with 40 additions and 2 deletions

View File

@@ -0,0 +1,26 @@
# Generated by Django 5.1.6 on 2025-02-26 17:08
import django.db.models.deletion
from django.db import migrations
from django.db import models
class Migration(migrations.Migration):
dependencies = [
("documents", "1063_alter_workflowactionwebhook_url_and_more"),
]
operations = [
migrations.AddField(
model_name="document",
name="head_version",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="versions",
to="documents.document",
verbose_name="head version of document",
),
),
]

View File

@@ -289,6 +289,15 @@ class Document(SoftDeleteModel, ModelWithOwner):
),
)
head_version = models.ForeignKey(
"self",
blank=True,
null=True,
related_name="versions",
on_delete=models.CASCADE,
verbose_name=_("head version of document"),
)
class Meta:
ordering = ("-created",)
verbose_name = _("document")

View File

@@ -1103,6 +1103,8 @@ class DocumentSerializer(
"remove_inbox_tags",
"page_count",
"mime_type",
"head_version",
"versions",
)
list_serializer_class = OwnedObjectListSerializer

View File

@@ -559,7 +559,7 @@ class DocumentViewSet(
GenericViewSet,
):
model = Document
queryset = Document.objects.annotate(num_notes=Count("notes"))
queryset = Document.objects.all()
serializer_class = DocumentSerializer
pagination_class = StandardPagination
permission_classes = (IsAuthenticated, PaperlessObjectPermissions)
@@ -588,7 +588,8 @@ class DocumentViewSet(
def get_queryset(self):
return (
Document.objects.distinct()
Document.objects.filter(head_version__isnull=True)
.distinct()
.order_by("-created")
.annotate(num_notes=Count("notes"))
.select_related("correspondent", "storage_path", "document_type", "owner")