def save_workflow(workflow, commit=True, flush=False): """ :type workflow: dart.model.workflow.Workflow """ workflow = default_and_validate(workflow, workflow_schema()) workflow_dao = WorkflowDao() workflow_dao.id = random_id() workflow_dao.data = workflow.data.to_dict() db.session.add(workflow_dao) if flush: db.session.flush() if commit: db.session.commit() workflow = workflow_dao.to_model() return workflow