Beispiel #1
0
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)
Beispiel #2
0
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)