Skip to content
Snippets Groups Projects
Commit 4ecd0229 authored by Eva Bardou's avatar Eva Bardou
Browse files

Refactor selected elements deletion endpoint

parent 364d4ec1
No related branches found
No related tags found
No related merge requests found
......@@ -1170,32 +1170,6 @@ class ElementBulkCreate(CreateAPIView):
return [{'id': element_data['element'].id} for element_data in elements]
<<<<<<< HEAD
class CorpusDeleteSelection(SelectionMixin, DestroyAPIView):
"""
Delete all selected elements on a corpus
"""
serializer_class = CorpusSerializer
openapi_overrides = {
'operationId': 'DeleteCorpusSelection',
'tags': ['elements']
}
def delete(self, request, *args, **kwargs):
rights = Corpus.objects.get(id=self.kwargs['pk']).get_acl_rights(request.user)
if Right.Admin not in rights:
self.permission_denied(request, message='You do not have admin access to delete elements on this corpus.')
selected_elements = self.get_selection(corpus_id=self.kwargs['pk'])
if not selected_elements.exists():
raise NotFound
for batch in range(0, selected_elements.count(), 50):
queryset = Element.objects.filter(id__in=list(selected_elements[batch:batch + 50].values_list('id', flat=True)))
element_trash(queryset, user_id=self.request.user.id)
return Response(status=status.HTTP_204_NO_CONTENT)
=======
class CorpusDeleteSelection(ElementsListMixin, SelectionMixin, DestroyAPIView):
"""
Delete selected elements on a corpus
......@@ -1205,4 +1179,3 @@ class CorpusDeleteSelection(ElementsListMixin, SelectionMixin, DestroyAPIView):
# Should not be possible due to the URL
assert self.selected_corpus, 'Missing corpus ID'
return self.get_selection(corpus_id=self.selected_corpus.id)
>>>>>>> Start working on selected elements deletion
......@@ -145,11 +145,7 @@ api = [
path('corpus/<uuid:pk>/ml-stats/', CorpusMLStats.as_view(), name='corpus-ml-stats'),
path('corpus/<uuid:pk>/allowed-metadata/', CorpusAllowedMetaData.as_view(), name='corpus-allowed-metadata'),
path('corpus/<uuid:pk>/versions/', CorpusWorkerVersionList.as_view(), name='corpus-versions'),
<<<<<<< HEAD
path('corpus/<uuid:pk>/selection/', CorpusDeleteSelection.as_view(), name='corpus-delete-selection'),
=======
path('corpus/<uuid:corpus>/selection/', CorpusDeleteSelection.as_view(), name='corpus-delete-selection'),
>>>>>>> Start working on selected elements deletion
# Moderation
path('ml-classes/', MLClassList.as_view(), name='mlclass-list'),
......
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