From df6720d6462430eb8fed0d4c8b6d67a455949962 Mon Sep 17 00:00:00 2001 From: Hironsan Date: Tue, 2 Mar 2021 16:01:35 +0900 Subject: [PATCH] Update bulk delete project to avoid the constraint error --- app/api/views/project.py | 9 +++++++-- frontend/components/project/FormCreate.vue | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/api/views/project.py b/app/api/views/project.py index 4c8333e1..da5a1b62 100644 --- a/app/api/views/project.py +++ b/app/api/views/project.py @@ -21,11 +21,16 @@ class ProjectList(generics.ListCreateAPIView): def delete(self, request, *args, **kwargs): delete_ids = request.data['ids'] - Project.objects.filter( + projects = Project.objects.filter( role_mappings__user=self.request.user, role_mappings__role__name=settings.ROLE_PROJECT_ADMIN, pk__in=delete_ids - ).delete() + ) + # Todo: I want to use bulk delete. + # But it causes the constraint error. + # See https://github.com/django-polymorphic/django-polymorphic/issues/229 + for project in projects: + project.delete() return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/frontend/components/project/FormCreate.vue b/frontend/components/project/FormCreate.vue index e9d6563d..9e6a3e3e 100644 --- a/frontend/components/project/FormCreate.vue +++ b/frontend/components/project/FormCreate.vue @@ -97,6 +97,7 @@ export default Vue.extend({ methods: { translateTypeName(type: string, types: string[]): string { + // @ts-ignore const index = this.projectTypes.indexOf(type) return types[index] }