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