def do_delete(request, entity_id, recv_data): entity, error = get_obj_with_check_perm(request.user, Entity, entity_id, ACLType.Full) if error: return error if not entity.is_active: return HttpResponse("Target entity is now under processing", status=400) if Entry.objects.filter(schema=entity, is_active=True).exists(): return HttpResponse( "cannot delete Entity because one or more Entries are not deleted", status=400, ) if custom_view.is_custom("delete_entity"): resp = custom_view.call_custom("delete_entity", None, entity) if resp: return resp ret = {} # save deleting target name before do it ret["name"] = entity.name # set deleted flag in advance because deleting processing takes long time entity.is_active = False entity.save(update_fields=["is_active"]) # Create a new job to delete entry and run it job = Job.new_delete_entity(request.user, entity) job.run() return JsonResponse(ret)
def do_delete(request, entity_id, recv_data): user = User.objects.get(id=request.user.id) ret = {} if not Entity.objects.filter(id=entity_id).exists(): return HttpResponse('Failed to get entity of specified id', status=400) entity = Entity.objects.get(id=entity_id) if not entity.is_active: return HttpResponse('Target entity is now under processing', status=400) if Entry.objects.filter(schema=entity, is_active=True).exists(): return HttpResponse('cannot delete Entity because one or more Entries are not deleted', status=400) # save deleting target name before do it ret['name'] = entity.name # set deleted flag in advance because deleting processing takes long time entity.is_active = False entity.save(update_fields=['is_active']) # Create a new job to delete entry and run it job = Job.new_delete_entity(user, entity) job.run() return JsonResponse(ret)