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

Merge branch 'fix-542' into 'master'

Fix stale read issue on bulk transcriptions endpoint

Closes #542

See merge request !1075
parents 8708a288 8b90ba9a
No related branches found
No related tags found
1 merge request!1075Fix stale read issue on bulk transcriptions endpoint
......@@ -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