diff --git a/backend/api/tests/api/test_document.py b/backend/api/tests/api/test_document.py index e71d6f35..86384f48 100644 --- a/backend/api/tests/api/test_document.py +++ b/backend/api/tests/api/test_document.py @@ -168,24 +168,3 @@ class TestExampleDetail(CRUDMixin): def test_denies_non_project_member_to_delete_doc(self): self.assert_delete(self.non_member, status.HTTP_403_FORBIDDEN) - - -class TestApproveLabelsAPI(CRUDMixin): - - def setUp(self): - self.project = prepare_project(task=DOCUMENT_CLASSIFICATION) - self.non_member = make_user() - doc = make_doc(self.project.item) - self.url = reverse(viewname='approve_labels', args=[self.project.item.id, doc.id]) - - def test_allow_project_admin_and_approver_to_approve_and_disapprove(self): - for member in self.project.users[:2]: - self.data = {'approved': True} - response = self.assert_create(member, status.HTTP_200_OK) - self.assertEqual(response.data['annotation_approver'], member.username) - self.data = {'approved': False} - response = self.assert_create(member, status.HTTP_200_OK) - self.assertIsNone(response.data['annotation_approver']) - - def test_denies_annotator_to_approve_and_disapprove(self): - self.assert_create(self.project.users[2], status.HTTP_403_FORBIDDEN) diff --git a/backend/api/urls.py b/backend/api/urls.py index 1057388c..ba3ed0c5 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -1,7 +1,7 @@ from django.urls import include, path -from .views import (annotation, comment, example, example_state, health, label, - project, tag, task) +from .views import (comment, example, example_state, health, label, project, + tag, task) from .views.tasks import category, relation, span, text urlpatterns_project = [ @@ -75,11 +75,6 @@ urlpatterns_project = [ view=relation.RelationDetail.as_view(), name='annotation_relation_detail' ), - path( - route='approval/', - view=annotation.ApprovalAPI.as_view(), - name='approve_labels' - ), path( route='examples//categories', view=category.CategoryListAPI.as_view(), diff --git a/backend/api/views/annotation.py b/backend/api/views/annotation.py deleted file mode 100644 index 503ce8f2..00000000 --- a/backend/api/views/annotation.py +++ /dev/null @@ -1,20 +0,0 @@ -from django.shortcuts import get_object_or_404 -from rest_framework.permissions import IsAuthenticated -from rest_framework.response import Response -from rest_framework.views import APIView - -from members.permissions import IsAnnotationApprover, IsProjectAdmin - -from ..models import Example -from ..serializers import ApproverSerializer - - -class ApprovalAPI(APIView): - permission_classes = [IsAuthenticated & (IsAnnotationApprover | IsProjectAdmin)] - - def post(self, request, *args, **kwargs): - approved = self.request.data.get('approved', True) - example = get_object_or_404(Example, pk=self.kwargs['example_id']) - example.annotations_approved_by = self.request.user if approved else None - example.save() - return Response(ApproverSerializer(example).data) diff --git a/frontend/domain/models/example/exampleRepository.ts b/frontend/domain/models/example/exampleRepository.ts index c4d564ee..9991558e 100644 --- a/frontend/domain/models/example/exampleRepository.ts +++ b/frontend/domain/models/example/exampleRepository.ts @@ -15,7 +15,5 @@ export interface ExampleRepository { findById(projectId: string, exampleId: number): Promise - approve(projectId: string, docId: number, approved: boolean): Promise - confirm(projectId: string, exampleId: number): Promise } diff --git a/frontend/repositories/example/apiDocumentRepository.ts b/frontend/repositories/example/apiDocumentRepository.ts index a8ec25d5..df8a3f58 100644 --- a/frontend/repositories/example/apiDocumentRepository.ts +++ b/frontend/repositories/example/apiDocumentRepository.ts @@ -42,11 +42,6 @@ export class APIExampleRepository implements ExampleRepository { return plainToInstance(ExampleItem, response.data) } - async approve(projectId: string, exampleId: number, approved: boolean): Promise { - const url = `/projects/${projectId}/approval/${exampleId}` - await this.request.post(url, { approved }) - } - async confirm(projectId: string, exampleId: number): Promise { const url = `/projects/${projectId}/examples/${exampleId}/states` await this.request.post(url, {}) diff --git a/frontend/services/application/example/exampleApplicationService.ts b/frontend/services/application/example/exampleApplicationService.ts index 037ad948..37cdcf16 100644 --- a/frontend/services/application/example/exampleApplicationService.ts +++ b/frontend/services/application/example/exampleApplicationService.ts @@ -57,10 +57,6 @@ export class ExampleApplicationService { return new ExampleDTO(response) } - public async approve(projectId: string, docId: number, approved: boolean): Promise { - await this.repository.approve(projectId, docId, approved) - } - public async confirm(projectId: string, exampleId: number): Promise { await this.repository.confirm(projectId, exampleId) }