From 4333b46901c443f7a2678fd91954773c010d926c Mon Sep 17 00:00:00 2001 From: Samuel Paccoud - DINUM Date: Tue, 17 Dec 2024 17:53:05 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(backend)=20add=20depth,=20path=20and?= =?UTF-8?q?=20numchild=20to=20serialized=20document?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This information is useful for the frontend to display the document tree structure and is cheap to expose. --- src/backend/core/api/serializers.py | 12 +++++++++ .../documents/test_api_documents_list.py | 3 +++ .../documents/test_api_documents_retrieve.py | 27 +++++++++++++++++++ .../documents/test_api_documents_update.py | 6 +++++ 4 files changed, 48 insertions(+) diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index d280bde6..a63841bb 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -156,10 +156,13 @@ class ListDocumentSerializer(BaseResourceSerializer): "abilities", "created_at", "creator", + "depth", "is_favorite", "link_role", "link_reach", "nb_accesses", + "numchild", + "path", "title", "updated_at", ] @@ -168,10 +171,13 @@ class ListDocumentSerializer(BaseResourceSerializer): "abilities", "created_at", "creator", + "depth", "is_favorite", "link_role", "link_reach", "nb_accesses", + "numchild", + "path", "updated_at", ] @@ -189,10 +195,13 @@ class DocumentSerializer(ListDocumentSerializer): "content", "created_at", "creator", + "depth", "is_favorite", "link_role", "link_reach", "nb_accesses", + "numchild", + "path", "title", "updated_at", ] @@ -201,10 +210,13 @@ class DocumentSerializer(ListDocumentSerializer): "abilities", "created_at", "creator", + "depth", "is_favorite", "link_role", "link_reach", "nb_accesses", + "numchild", + "path", "updated_at", ] diff --git a/src/backend/core/tests/documents/test_api_documents_list.py b/src/backend/core/tests/documents/test_api_documents_list.py index 8549eaf0..8217dd44 100644 --- a/src/backend/core/tests/documents/test_api_documents_list.py +++ b/src/backend/core/tests/documents/test_api_documents_list.py @@ -63,10 +63,13 @@ def test_api_documents_list_format(): "abilities": document.get_abilities(user), "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 1, "is_favorite": True, "link_reach": document.link_reach, "link_role": document.link_role, "nb_accesses": 3, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } diff --git a/src/backend/core/tests/documents/test_api_documents_retrieve.py b/src/backend/core/tests/documents/test_api_documents_retrieve.py index 370e30fe..82200991 100644 --- a/src/backend/core/tests/documents/test_api_documents_retrieve.py +++ b/src/backend/core/tests/documents/test_api_documents_retrieve.py @@ -44,10 +44,13 @@ def test_api_documents_retrieve_anonymous_public_standalone(): "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 1, "is_favorite": False, "link_reach": "public", "link_role": document.link_role, "nb_accesses": 0, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -91,10 +94,13 @@ def test_api_documents_retrieve_anonymous_public_parent(): "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 3, "is_favorite": False, "link_reach": document.link_reach, "link_role": document.link_role, "nb_accesses": 0, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -171,10 +177,13 @@ def test_api_documents_retrieve_authenticated_unrelated_public_or_authenticated( "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 1, "is_favorite": False, "link_reach": reach, "link_role": document.link_role, "nb_accesses": 0, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -225,10 +234,13 @@ def test_api_documents_retrieve_authenticated_public_or_authenticated_parent(rea "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 3, "is_favorite": False, "link_reach": document.link_reach, "link_role": document.link_role, "nb_accesses": 0, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -329,10 +341,13 @@ def test_api_documents_retrieve_authenticated_related_direct(): "content": document.content, "creator": str(document.creator.id), "created_at": document.created_at.isoformat().replace("+00:00", "Z"), + "depth": 1, "is_favorite": False, "link_reach": document.link_reach, "link_role": document.link_role, "nb_accesses": 2, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -383,10 +398,13 @@ def test_api_documents_retrieve_authenticated_related_parent(): "content": document.content, "creator": str(document.creator.id), "created_at": document.created_at.isoformat().replace("+00:00", "Z"), + "depth": 3, "is_favorite": False, "link_reach": "restricted", "link_role": document.link_role, "nb_accesses": 2, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -529,10 +547,13 @@ def test_api_documents_retrieve_authenticated_related_team_members( "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 1, "is_favorite": False, "link_reach": "restricted", "link_role": document.link_role, "nb_accesses": 5, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -585,10 +606,13 @@ def test_api_documents_retrieve_authenticated_related_team_administrators( "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 1, "is_favorite": False, "link_reach": "restricted", "link_role": document.link_role, "nb_accesses": 5, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } @@ -642,10 +666,13 @@ def test_api_documents_retrieve_authenticated_related_team_owners( "content": document.content, "created_at": document.created_at.isoformat().replace("+00:00", "Z"), "creator": str(document.creator.id), + "depth": 1, "is_favorite": False, "link_reach": "restricted", "link_role": document.link_role, "nb_accesses": 5, + "numchild": 0, + "path": document.path, "title": document.title, "updated_at": document.updated_at.isoformat().replace("+00:00", "Z"), } diff --git a/src/backend/core/tests/documents/test_api_documents_update.py b/src/backend/core/tests/documents/test_api_documents_update.py index 02b8dcf2..8eaba224 100644 --- a/src/backend/core/tests/documents/test_api_documents_update.py +++ b/src/backend/core/tests/documents/test_api_documents_update.py @@ -158,8 +158,11 @@ def test_api_documents_update_anonymous_or_authenticated_unrelated( "accesses", "created_at", "creator", + "depth", "link_reach", "link_role", + "numchild", + "path", ]: assert value == old_document_values[key] elif key == "updated_at": @@ -269,9 +272,12 @@ def test_api_documents_update_authenticated_editor_administrator_or_owner( "id", "created_at", "creator", + "depth", "link_reach", "link_role", "nb_accesses", + "numchild", + "path", ]: assert value == old_document_values[key] elif key == "updated_at":