Add task order /edit route
This commit is contained in:
parent
6ad3e41b70
commit
ce6b526da1
@ -56,6 +56,28 @@ def update_task_order(
|
||||
)
|
||||
|
||||
|
||||
@task_orders_bp.route("/task_orders/<task_order_id>/edit")
|
||||
def edit(task_order_id):
|
||||
task_order = TaskOrders.get(task_order_id)
|
||||
|
||||
if task_order.number is None:
|
||||
return redirect(
|
||||
url_for("task_orders.form_step_two_add_number", task_order_id=task_order_id)
|
||||
)
|
||||
elif not task_order.clins_are_completed:
|
||||
return redirect(
|
||||
url_for(
|
||||
"task_orders.form_step_three_add_clins", task_order_id=task_order_id
|
||||
)
|
||||
)
|
||||
elif task_order.is_completed:
|
||||
return redirect(
|
||||
url_for("task_orders.form_step_four_review", task_order_id=task_order_id)
|
||||
)
|
||||
else:
|
||||
return redirect(url_for("task_orders.form_step_one_add_pdf", task_order_id=task_order_id))
|
||||
|
||||
|
||||
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/form/step_1")
|
||||
@task_orders_bp.route("/task_orders/<task_order_id>/form/step_1")
|
||||
@user_can(Permissions.CREATE_TASK_ORDER, message="view task order form")
|
||||
|
@ -304,6 +304,25 @@ def test_task_orders_submit_task_order(client, user_session, task_order):
|
||||
assert upcoming_task_order.status == TaskOrderStatus.UPCOMING
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"to_factory_args,expected_step",
|
||||
[
|
||||
({"number": None, "clins": []}, "step_2"),
|
||||
({"number": "1234567890123", "clins": []}, "step_3"),
|
||||
({"number": "1234567890123", "create_clins": [1]}, "step_4"),
|
||||
],
|
||||
)
|
||||
def test_task_orders_edit_redirects_to_latest_incomplete_step(
|
||||
client, user_session, portfolio, to_factory_args, expected_step
|
||||
):
|
||||
task_order = TaskOrderFactory.create(**to_factory_args)
|
||||
user_session(portfolio.owner)
|
||||
|
||||
response = client.get(url_for("task_orders.edit", task_order_id=task_order.id))
|
||||
|
||||
assert expected_step in response.location
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Reevaluate how form handles invalid data")
|
||||
def test_task_orders_update_invalid_data(client, user_session, portfolio):
|
||||
user_session(portfolio.owner)
|
||||
|
Loading…
x
Reference in New Issue
Block a user