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