feat: operation 支持直接删除管理员操作

This commit is contained in:
caoqianming 2023-06-07 09:16:17 +08:00
parent 31f5a402c0
commit 364abe1a3b
1 changed files with 8 additions and 5 deletions

View File

@ -59,15 +59,18 @@ class OperationViewSet(CustomModelViewSet):
raise ParseError('该作业不可修改')
return super().update(request, *args, **kwargs)
@transaction.atomic
def destroy(self, request, *args, **kwargs):
obj = self.get_object()
if obj.state != Operation.OP_CREATE:
raise ParseError('非创建状态不可删除')
user = request.user
if user == obj.create_by or user.is_superuser:
if user.is_superuser:
pass
else:
raise ParseError('非创建人不可删除')
if obj.state != Operation.OP_CREATE:
raise ParseError('非创建状态不可删除')
user = request.user
if user != obj.create_by:
raise ParseError('非创建人不可删除')
Ticket.objects.filter(id__in=Opl.objects.filter(operation=obj).values_list('id', flat=True)).delete() # 删除可能的工单
obj.delete()
return Response(status=204)