From 6ea3bba44d92bbe41b8d8e1f42ac2c6d40b2648d Mon Sep 17 00:00:00 2001
From: vrigal <rigal@teklia.com>
Date: Fri, 5 Jun 2020 16:14:16 +0200
Subject: [PATCH] Re-serialize a full transcription in TranscriptionCreate API
 view

---
 arkindex/documents/api/ml.py                     | 10 +++++++---
 .../documents/tests/test_transcription_create.py | 16 ++++++++++++++++
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/arkindex/documents/api/ml.py b/arkindex/documents/api/ml.py
index 132d2604ac..ac68ac281e 100644
--- a/arkindex/documents/api/ml.py
+++ b/arkindex/documents/api/ml.py
@@ -14,8 +14,8 @@ from arkindex_common.ml_tool import MLToolType
 from arkindex_common.enums import EntityType
 from arkindex.documents.serializers.ml import (
     ClassificationsSerializer, ClassificationCreateSerializer, ClassificationSerializer,
-    TranscriptionsSerializer, TranscriptionCreateSerializer, DataSourceStatsSerializer,
-    ClassificationsSelectionSerializer, ClassificationMode,
+    TranscriptionsSerializer, TranscriptionSerializer, TranscriptionCreateSerializer,
+    DataSourceStatsSerializer, ClassificationsSelectionSerializer, ClassificationMode,
     CountMLClassSerializer, MLClassSerializer
 )
 from arkindex.documents.pagexml import PageXmlParser
@@ -86,7 +86,11 @@ class TranscriptionCreate(CreateAPIView):
         serializer.is_valid(raise_exception=True)
         obj = self.perform_create(serializer)
         headers = self.get_success_headers(serializer.data)
-        return Response({'id': obj.id}, status=status.HTTP_201_CREATED, headers=headers)
+        return Response(
+            # Use a single transcription serializer for the response
+            TranscriptionSerializer(obj).data,
+            status=status.HTTP_201_CREATED, headers=headers
+        )
 
 
 class TranscriptionBulk(CreateAPIView, UpdateAPIView):
diff --git a/arkindex/documents/tests/test_transcription_create.py b/arkindex/documents/tests/test_transcription_create.py
index 27e9bce256..53202d6937 100644
--- a/arkindex/documents/tests/test_transcription_create.py
+++ b/arkindex/documents/tests/test_transcription_create.py
@@ -102,6 +102,22 @@ class TestTranscriptionCreate(FixtureAPITestCase):
                 }
             )
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
+        tr = Transcription.objects.get(text='A perfect day in a perfect place')
+        self.assertDictEqual(response.json(), {
+            'id': str(tr.id),
+            'score': None,
+            'source': {
+                'id': str(tr.source.id),
+                'internal': False,
+                'name': '',
+                'revision': '',
+                'slug': 'manual',
+                'type': 'recognizer'
+            },
+            'text': 'A perfect day in a perfect place',
+            'type': 'line',
+            'zone': None
+        })
 
         new_ts = Transcription.objects.get(text='A perfect day in a perfect place', type=TranscriptionType.Line)
         self.assertIsNone(new_ts.zone)
-- 
GitLab