Merge pull request #989 from dod-ccpo/resume-to-draft
Resume TO draft from save
This commit is contained in:
@@ -14,9 +14,7 @@ from atst.models.task_order import Status as TaskOrderStatus
|
|||||||
def review_task_order(task_order_id):
|
def review_task_order(task_order_id):
|
||||||
task_order = TaskOrders.get(task_order_id)
|
task_order = TaskOrders.get(task_order_id)
|
||||||
if task_order.is_draft:
|
if task_order.is_draft:
|
||||||
return redirect(
|
return redirect(url_for("task_orders.edit", task_order_id=task_order.id))
|
||||||
url_for("task_orders.form_step_one_add_pdf", task_order_id=task_order.id)
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
signature_form = SignatureForm()
|
signature_form = SignatureForm()
|
||||||
return render_template(
|
return render_template(
|
||||||
|
@@ -56,6 +56,35 @@ def update_task_order(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@task_orders_bp.route("/task_orders/<task_order_id>/edit")
|
||||||
|
@user_can(Permissions.CREATE_TASK_ORDER, message="edit task order form")
|
||||||
|
def edit(task_order_id):
|
||||||
|
task_order = TaskOrders.get(task_order_id)
|
||||||
|
|
||||||
|
if not task_order.pdf:
|
||||||
|
return redirect(
|
||||||
|
url_for("task_orders.form_step_one_add_pdf", task_order_id=task_order_id)
|
||||||
|
)
|
||||||
|
elif not task_order.number:
|
||||||
|
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("/portfolios/<portfolio_id>/task_orders/form/step_1")
|
||||||
@task_orders_bp.route("/task_orders/<task_order_id>/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")
|
@user_can(Permissions.CREATE_TASK_ORDER, message="view task order form")
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro TaskOrderEditButton(task_order, text="Edit", secondary=False) %}
|
{% macro TaskOrderEditButton(task_order, text="Edit", secondary=False) %}
|
||||||
<a href="{{ url_for('task_orders.form_step_one_add_pdf', task_order_id=task_order.id) }}" class="usa-button {{ 'usa-button-secondary' if secondary else '' }}">
|
<a href="{{ url_for('task_orders.edit', task_order_id=task_order.id) }}" class="usa-button {{ 'usa-button-secondary' if secondary else '' }}">
|
||||||
{{ text }}
|
{{ text }}
|
||||||
</a>
|
</a>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
{% block portfolio_content %}
|
{% block portfolio_content %}
|
||||||
|
|
||||||
{% call StickyCTA(text="Task order details") %}
|
{% call StickyCTA(text="Task order details") %}
|
||||||
<a href="{{ url_for('task_orders.form_step_one_add_pdf', task_order_id=task_order.id) }}" class="usa-button usa-button-secondary" type="submit">Edit</a>
|
<a href="{{ url_for('task_orders.edit', task_order_id=task_order.id) }}" class="usa-button usa-button-secondary" type="submit">Edit</a>
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
|
|
||||||
{% include "fragments/task_order_review.html" %}
|
{% include "fragments/task_order_review.html" %}
|
||||||
|
@@ -51,7 +51,4 @@ def test_review_task_order_draft(client, user_session, task_order):
|
|||||||
url_for("task_orders.review_task_order", task_order_id=task_order.id)
|
url_for("task_orders.review_task_order", task_order_id=task_order.id)
|
||||||
)
|
)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert (
|
assert url_for("task_orders.edit", task_order_id=task_order.id) in response.location
|
||||||
url_for("task_orders.form_step_one_add_pdf", task_order_id=task_order.id)
|
|
||||||
in response.location
|
|
||||||
)
|
|
||||||
|
@@ -304,6 +304,28 @@ def test_task_orders_submit_task_order(client, user_session, task_order):
|
|||||||
assert upcoming_task_order.status == TaskOrderStatus.UPCOMING
|
assert upcoming_task_order.status == TaskOrderStatus.UPCOMING
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"to_factory_args,expected_step",
|
||||||
|
[
|
||||||
|
({"_pdf": None, "number": "", "clins": []}, "step_1"),
|
||||||
|
({"number": "", "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(
|
||||||
|
portfolio=portfolio, creator=portfolio.owner, **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")
|
@pytest.mark.skip(reason="Reevaluate how form handles invalid data")
|
||||||
def test_task_orders_update_invalid_data(client, user_session, portfolio):
|
def test_task_orders_update_invalid_data(client, user_session, portfolio):
|
||||||
user_session(portfolio.owner)
|
user_session(portfolio.owner)
|
||||||
|
Reference in New Issue
Block a user