From 4d0e5ebb4feeac914dbbd468db160bc7753a8419 Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Mon, 4 Mar 2019 19:36:37 -0500 Subject: [PATCH] Check if form is complete before showing the TO Review page --- atst/routes/portfolios/task_orders.py | 15 +++++++++------ templates/portfolios/task_orders/show.html | 2 +- tests/routes/portfolios/test_task_orders.py | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/atst/routes/portfolios/task_orders.py b/atst/routes/portfolios/task_orders.py index a0b539b4..4efac824 100644 --- a/atst/routes/portfolios/task_orders.py +++ b/atst/routes/portfolios/task_orders.py @@ -85,12 +85,15 @@ def ko_review(portfolio_id, task_order_id): Authorization.check_is_ko_or_cor(g.current_user, task_order) - return render_template( - "/portfolios/task_orders/review.html", - portfolio=portfolio, - task_order=task_order, - form=KOReviewForm(obj=task_order), - ) + if TaskOrders.all_sections_complete(task_order): + return render_template( + "/portfolios/task_orders/review.html", + portfolio=portfolio, + task_order=task_order, + form=KOReviewForm(obj=task_order), + ) + else: + raise NotFoundError("task_order") @portfolios_bp.route( diff --git a/templates/portfolios/task_orders/show.html b/templates/portfolios/task_orders/show.html index c5468a24..0aaa4cd4 100644 --- a/templates/portfolios/task_orders/show.html +++ b/templates/portfolios/task_orders/show.html @@ -32,7 +32,7 @@
- {% if not task_order.is_active and button_text and button_url %} + {% if not task_order.is_active and complete and button_text and button_url %} diff --git a/tests/routes/portfolios/test_task_orders.py b/tests/routes/portfolios/test_task_orders.py index 0636df2e..73430512 100644 --- a/tests/routes/portfolios/test_task_orders.py +++ b/tests/routes/portfolios/test_task_orders.py @@ -308,6 +308,22 @@ def test_ko_can_view_ko_review_page(client, user_session): assert response.status_code == 404 +def test_cor_cant_view_review_until_to_completed(client, user_session): + portfolio = PortfolioFactory.create() + user_session(portfolio.owner) + task_order = TaskOrderFactory.create( + portfolio=portfolio, clin_01=None, cor_dod_id=portfolio.owner.dod_id + ) + response = client.get( + url_for( + "portfolios.ko_review", + portfolio_id=portfolio.id, + task_order_id=task_order.id, + ) + ) + assert response.status_code == 404 + + def test_mo_redirected_to_build_page(client, user_session): portfolio = PortfolioFactory.create() user_session(portfolio.owner)