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)