def duplicate_task(task_id: int) -> Response: """Duplicate a task.""" my_task = Task.query.filter_by(id=task_id).first() if my_task: new_task = Task() # pylint: disable=protected-access for key in my_task.__table__.columns.keys(): if key not in ["id", "last_run", "last_run_job_id", "status_id"]: setattr(new_task, key, getattr(my_task, key)) new_task.enabled = 0 new_task.creator_id = current_user.id new_task.updater_id = current_user.id new_task.status_id = None new_task.order = None new_task.name = str(my_task.name or "") + " - Duplicated" db.session.add(new_task) db.session.commit() return redirect(url_for("task_bp.one_task", task_id=new_task.id)) flash("Task does not exist.") return redirect(url_for("task_bp.all_tasks"))