Restart workflow with given id (uuid) at given point.

    By providing the ``restart_point`` you can change the
    point of which the workflow will continue from.

    * restart_prev: will restart from the previous task
    * continue_next: will continue to the next task (default)
    * restart_task: will restart the current task

    ``**kwargs`` can be used to pass custom arguments to the engine/object.

    :param oid: object id of the object to process
    :type oid: int

    :param restart_point: point to continue from
    :type restart_point: str

    :return: WorkflowEngine instance

def continue_worker(oid, restart_point="continue_next", **kwargs):
    """Restart workflow with given id (uuid) at given point.

    By providing the ``restart_point`` you can change the
    point of which the workflow will continue from.

    * restart_prev: will restart from the previous task
    * continue_next: will continue to the next task (default)
    * restart_task: will restart the current task

    ``**kwargs`` can be used to pass custom arguments to the engine/object.

    :param oid: object id of the object to process
    :type oid: int

    :param restart_point: point to continue from
    :type restart_point: str

    :return: WorkflowEngine instance
    """
    if 'stop_on_halt' not in kwargs:
        kwargs['stop_on_halt'] = False

    workflow_object = workflow_object_class.get(oid)
    workflow = Workflow.query.get(workflow_object.id_workflow)

    engine = WorkflowEngine(workflow, **kwargs)
    engine.save()

    db.session.commit()
    engine.continue_object(
        workflow_object,
        restart_point=restart_point,
        **kwargs
    )
    return engine