Skip to content
Snippets Groups Projects
Commit 8b90ba9a authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Fix stale read issue on bulk transcriptions endpoint

parent 8708a288
No related branches found
No related tags found
No related merge requests found
......@@ -192,7 +192,12 @@ class ElementTranscriptionsBulk(CreateAPIView):
def get_queryset(self):
if not self.request:
return Element.objects.none()
return Element.objects.filter(corpus__in=Corpus.objects.writable(self.request.user))
# Load elements and their zones from the default DB to avoid
# a stale read issue when an element is created by a worker
# and this endpoint is immediately used after to create transcriptions
return Element.objects.filter(
corpus__in=Corpus.objects.writable(self.request.user)
).using('default').select_related('zone')
def get_serializer_context(self):
context = super().get_serializer_context()
......
......@@ -122,7 +122,7 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
self.assertEqual(created_elts.count(), 1)
self.client.force_login(self.internal_user)
with self.assertNumQueries(17):
with self.assertNumQueries(16):
response = self.client.post(
reverse('api:element-transcriptions-bulk', kwargs={'pk': self.page.id}),
format='json',
......@@ -166,7 +166,7 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
}
self.client.force_login(self.internal_user)
with self.assertNumQueries(17):
with self.assertNumQueries(16):
response = self.client.post(
reverse('api:element-transcriptions-bulk', kwargs={'pk': self.page.id}),
format='json',
......@@ -286,7 +286,7 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
}
self.client.force_login(self.internal_user)
with self.assertNumQueries(17):
with self.assertNumQueries(16):
response = self.client.post(
reverse('api:element-transcriptions-bulk', kwargs={'pk': self.page.id}),
format='json',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment