From 2ea83374edf339c1ceaba80befb61553a9cffb4d Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 31 Mar 2026 11:52:13 -0700 Subject: [PATCH] Add latest_content field --- .../0017_document_latest_content.py | 23 +++++++++++++++++++ src/documents/models.py | 10 ++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/documents/migrations/0017_document_latest_content.py diff --git a/src/documents/migrations/0017_document_latest_content.py b/src/documents/migrations/0017_document_latest_content.py new file mode 100644 index 000000000..3d6063bb2 --- /dev/null +++ b/src/documents/migrations/0017_document_latest_content.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.12 on 2026-03-31 18:52 + +from django.db import migrations +from django.db import models + + +class Migration(migrations.Migration): + dependencies = [ + ("documents", "0016_sha256_checksums"), + ] + + operations = [ + migrations.AddField( + model_name="document", + name="latest_content", + field=models.TextField( + blank=True, + help_text="Materialized effective content for root documents. Uses the latest version content when available.", + null=True, + verbose_name="latest content", + ), + ), + ] diff --git a/src/documents/models.py b/src/documents/models.py index 08f995ff6..fc6e83625 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -196,6 +196,16 @@ class Document(SoftDeleteModel, ModelWithOwner): # type: ignore[django-manager- ), ) + latest_content = models.TextField( + _("latest content"), + blank=True, + null=True, + help_text=_( + "Materialized effective content for root documents. " + "Uses the latest version content when available.", + ), + ) + content_length = models.GeneratedField( expression=Length("content"), output_field=PositiveIntegerField(default=0),