diff --git a/arkindex/documents/api/elements.py b/arkindex/documents/api/elements.py index 4c371922c2e43cccf83554c9e37f3f2105f7ef70..2b49261767b8938a8951dff76aff687e8e2ffbf3 100644 --- a/arkindex/documents/api/elements.py +++ b/arkindex/documents/api/elements.py @@ -1043,15 +1043,6 @@ class RemoveSelectionAutoSchema(AutoSchema): get=extend_schema( operation_id='ListSelection', description='List all selected elements', - parameters=[ - OpenApiParameter( - 'with_best_classes', - description='Returns best classifications for each element. ' - 'If not set, elements best_classes field will always be null', - type=bool, - required=False, - ), - ], ) ) class ManageSelection(SelectionMixin, ListAPIView): @@ -1068,13 +1059,7 @@ class ManageSelection(SelectionMixin, ListAPIView): raise ValidationError(['Selection is not available on this instance.']) def get_queryset(self): - filtered_queryset = self.get_selection().select_related('type', 'corpus', 'image__server').order_by('corpus', 'type__slug', 'name', 'id') - - with_best_classes = self.request.query_params.get('with_best_classes') - if with_best_classes and with_best_classes.lower() not in ('false', '0'): - return filtered_queryset.prefetch_related(best_classifications_prefetch) - - return filtered_queryset + return self.get_selection().select_related('type', 'corpus', 'image__server').order_by('corpus', 'type__slug', 'name', 'id') # TODO: Use many=True on the response without causing Spectacular to see a paginated list @extend_schema( diff --git a/arkindex/documents/tests/test_selection_api.py b/arkindex/documents/tests/test_selection_api.py index f1d2d9221bc1dfa87a794e45cff446f65d5bac9b..830c4dc7ac47ec0c094f02dd68da81aca6b6944b 100644 --- a/arkindex/documents/tests/test_selection_api.py +++ b/arkindex/documents/tests/test_selection_api.py @@ -133,17 +133,6 @@ class TestElementsAPI(FixtureAPITestCase): [str(self.page.id), str(self.vol.id)] ) - response = self.client.get(reverse('api:elements-selection') + '?with_best_classes=true') - self.assertEqual(response.status_code, status.HTTP_200_OK) - results = response.json()['results'] - self.assertEqual(len(results), 2) - self.assertCountEqual( - [result['id'] for result in results], - [str(self.page.id), str(self.vol.id)] - ) - self.assertEqual(results[0]['best_classes'], []) - self.assertEqual(results[1]['best_classes'], []) - def test_delete_requires_login(self): self.client.post( reverse('api:elements-selection'), @@ -284,16 +273,3 @@ class TestElementsAPI(FixtureAPITestCase): self.assertEqual(len(results), 2) self.assertEqual(results[0]['id'], str(self.page.id)) self.assertEqual(results[1]['id'], str(self.vol.id)) - - def test_list_selection_with_best_classes(self): - self.user.selected_elements.add(self.page, self.vol) - self.client.force_login(self.user) - with self.assertNumQueries(5): - response = self.client.get(reverse('api:elements-selection') + '?with_best_classes=true') - self.assertEqual(response.status_code, status.HTTP_200_OK) - results = response.json()['results'] - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['id'], str(self.page.id)) - self.assertEqual(results[0]['best_classes'], []) - self.assertEqual(results[1]['id'], str(self.vol.id)) - self.assertEqual(results[1]['best_classes'], [])