From f0cb73b20bf19b3014766fa24c108a6ebd9fc61f Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Fri, 6 Jul 2018 15:44:56 +0200
Subject: [PATCH] Add parents to act search results

---
 arkindex/documents/search.py      | 4 ++++
 arkindex/documents/serializers.py | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/arkindex/documents/search.py b/arkindex/documents/search.py
index f10be10e46..5cdbcc2b97 100644
--- a/arkindex/documents/search.py
+++ b/arkindex/documents/search.py
@@ -56,9 +56,13 @@ def search_acts_post(data):
         parents_ids=act_ids,
         prefetch=('zone__image__server',)
     )
+
+    all_parents = Element.objects.get_ascendings_paths(*act_ids)
+
     for act in acts:
         act.transcriptions = [transcriptions[tid] for tid in acts_tr_ids[act.id]]
         act.surfaces = [surf.zone for surf in all_surfaces.get(act.id, [])]
+        act.parents = all_parents.get(act.id, [])
 
     return sorted(acts, key=lambda a: act_scores[a.id], reverse=True)
 
diff --git a/arkindex/documents/serializers.py b/arkindex/documents/serializers.py
index 11af0df8ac..4bbe15d134 100644
--- a/arkindex/documents/serializers.py
+++ b/arkindex/documents/serializers.py
@@ -216,6 +216,12 @@ class ActSearchResultSerializer(serializers.ModelSerializer):
     """
     transcriptions = TranscriptionSerializer(many=True)
     surfaces = ZoneSerializer(many=True)
+    parents = serializers.ListField(
+        child=serializers.ListField(
+            child=ElementLightSerializer()
+        ),
+        read_only=True,
+    )
     viewer_url = ViewerURLField('api:act-manifest')
 
     class Meta:
@@ -226,6 +232,7 @@ class ActSearchResultSerializer(serializers.ModelSerializer):
             'number',
             'transcriptions',
             'surfaces',
+            'parents',
             'viewer_url',
         )
 
-- 
GitLab