only send officer invitations if MO portion of TO form is complete

This commit is contained in:
dandds 2019-02-08 15:13:10 -05:00
parent 4f2cbd6519
commit 95fa71fc03
2 changed files with 33 additions and 10 deletions

View File

@ -51,7 +51,7 @@ def update_officer_invitations(user, task_order):
@task_orders_bp.route("/task_orders/invite/<task_order_id>", methods=["POST"]) @task_orders_bp.route("/task_orders/invite/<task_order_id>", methods=["POST"])
def invite(task_order_id): def invite(task_order_id):
task_order = TaskOrders.get(g.current_user, task_order_id) task_order = TaskOrders.get(g.current_user, task_order_id)
# TODO: only do this if TO is complete if TaskOrders.all_sections_complete(task_order):
update_officer_invitations(g.current_user, task_order) update_officer_invitations(g.current_user, task_order)
portfolio = task_order.portfolio portfolio = task_order.portfolio
@ -63,3 +63,7 @@ def invite(task_order_id):
task_order_id=task_order.id, task_order_id=task_order.id,
) )
) )
else:
return redirect(
url_for("task_orders.new", screen=4, task_order_id=task_order.id)
)

View File

@ -72,3 +72,22 @@ def test_does_not_resend_officer_invitation(client, user_session):
for i in range(2): for i in range(2):
client.post(url_for("task_orders.invite", task_order_id=task_order.id)) client.post(url_for("task_orders.invite", task_order_id=task_order.id))
assert len(contracting_officer.invitations) == 1 assert len(contracting_officer.invitations) == 1
def test_does_not_invite_if_task_order_incomplete(client, user_session, queue):
task_order = TaskOrderFactory.create(
scope=None, ko_invite=True, cor_invite=True, so_invite=True
)
portfolio = task_order.portfolio
user_session(portfolio.owner)
response = client.post(url_for("task_orders.invite", task_order_id=task_order.id))
# redirected to review screen
assert response.headers["Location"] == url_for(
"task_orders.new", screen=4, task_order_id=task_order.id, _external=True
)
# only owner is portfolio member
assert len(portfolio.members) == 1
# no email invitations are enqueued
assert len(queue.get_queue()) == 0