From abf910fd93ae54d973c83be60c58e0a814edc407 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 19 Apr 2025 15:02:33 -0700 Subject: [PATCH] Fix: fix breaking api change to document notes user field (#9714) --- src/documents/serialisers.py | 14 ++++++++++++++ src/documents/tests/test_api_documents.py | 20 ++++++++++++++++++++ src/paperless/settings.py | 4 ++-- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index 782f4d6c8..b6f61103f 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -877,6 +877,20 @@ class NotesSerializer(serializers.ModelSerializer): fields = ["id", "note", "created", "user"] ordering = ["-created"] + def to_representation(self, instance): + ret = super().to_representation(instance) + + request = self.context.get("request") + api_version = int( + request.version if request else settings.REST_FRAMEWORK["DEFAULT_VERSION"], + ) + + if api_version < 8: + user_id = ret["user"]["id"] + ret["user"] = user_id + + return ret + class DocumentSerializer( OwnedObjectSerializer, diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index a0a380e41..0af1f5040 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -2227,6 +2227,26 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): }, ) + def test_docnote_serializer_v7(self): + doc = Document.objects.create( + title="test", + mime_type="application/pdf", + content="this is a document which will have notes!", + ) + Note.objects.create( + note="This is a note.", + document=doc, + user=self.user, + ) + self.assertEqual( + self.client.get( + f"/api/documents/{doc.pk}/", + headers={"Accept": "application/json; version=7"}, + format="json", + ).data["notes"][0]["user"], + self.user.id, + ) + def test_create_note(self): """ GIVEN: diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 361854a93..743151ef1 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -342,10 +342,10 @@ REST_FRAMEWORK = { "rest_framework.authentication.SessionAuthentication", ], "DEFAULT_VERSIONING_CLASS": "rest_framework.versioning.AcceptHeaderVersioning", - "DEFAULT_VERSION": "7", + "DEFAULT_VERSION": "8", # Make sure these are ordered and that the most recent version appears # last. See api.md#api-versioning when adding new versions. - "ALLOWED_VERSIONS": ["1", "2", "3", "4", "5", "6", "7"], + "ALLOWED_VERSIONS": ["1", "2", "3", "4", "5", "6", "7", "8"], # DRF Spectacular default schema "DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema", }