Manage invitations should be inactive until user has completed TO flow
This commit is contained in:
parent
f0099a2e4a
commit
ff1379a3ff
@ -113,12 +113,22 @@ def task_order_invitations(portfolio_id, task_order_id):
|
||||
portfolio = Portfolios.get(g.current_user, portfolio_id)
|
||||
task_order = TaskOrders.get(g.current_user, task_order_id)
|
||||
form = EditTaskOrderOfficersForm(obj=task_order)
|
||||
return render_template(
|
||||
"portfolios/task_orders/invitations.html",
|
||||
portfolio=portfolio,
|
||||
task_order=task_order,
|
||||
form=form,
|
||||
)
|
||||
|
||||
if TaskOrders.all_sections_complete(task_order):
|
||||
return render_template(
|
||||
"portfolios/task_orders/invitations.html",
|
||||
portfolio=portfolio,
|
||||
task_order=task_order,
|
||||
form=form,
|
||||
)
|
||||
else:
|
||||
return redirect(
|
||||
url_for(
|
||||
"portfolios.view_task_order",
|
||||
task_order_id=task_order.id,
|
||||
portfolio_id=portfolio.id,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@portfolios_bp.route(
|
||||
|
@ -203,10 +203,12 @@
|
||||
<div class="panel__content">
|
||||
<div class="task-order-invitations__heading row">
|
||||
<h3>Invitations</h3>
|
||||
<a href="{{ url_for('portfolios.task_order_invitations', portfolio_id=portfolio.id, task_order_id=task_order.id) }}" class="icon-link">
|
||||
<span>manage</span>
|
||||
{{ Icon("edit") }}
|
||||
</a>
|
||||
{% if all_sections_complete %}
|
||||
<a href="{{ url_for('portfolios.task_order_invitations', portfolio_id=portfolio.id, task_order_id=task_order.id) }}" class="icon-link">
|
||||
<span>{{ "common.manage" | translate }}</span>
|
||||
{{ Icon("edit") }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{{ InvitationStatus('Contracting Officer', task_order.contracting_officer, officer_info=task_order.officer_dictionary('contracting_officer')) }}
|
||||
{{ InvitationStatus('Contracting Officer Representative', task_order.contracting_officer_representative, officer_info=task_order.officer_dictionary('contracting_officer_representative')) }}
|
||||
|
@ -5,6 +5,7 @@ from datetime import timedelta, date
|
||||
from atst.domain.roles import Roles
|
||||
from atst.domain.task_orders import TaskOrders
|
||||
from atst.models.portfolio_role import Status as PortfolioStatus
|
||||
from atst.utils.localization import translate
|
||||
|
||||
from tests.factories import (
|
||||
PortfolioFactory,
|
||||
@ -178,6 +179,7 @@ def test_ko_can_view_task_order(client, user_session):
|
||||
)
|
||||
task_order = TaskOrderFactory.create(portfolio=portfolio, contracting_officer=ko)
|
||||
user_session(ko)
|
||||
|
||||
response = client.get(
|
||||
url_for(
|
||||
"portfolios.view_task_order",
|
||||
@ -186,9 +188,21 @@ def test_ko_can_view_task_order(client, user_session):
|
||||
)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert translate("common.manage") in response.data.decode()
|
||||
|
||||
TaskOrders.update(ko, task_order, clin_01=None)
|
||||
response = client.get(
|
||||
url_for(
|
||||
"portfolios.view_task_order",
|
||||
portfolio_id=portfolio.id,
|
||||
task_order_id=task_order.id,
|
||||
)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert translate("common.manage") not in response.data.decode()
|
||||
|
||||
|
||||
def test_can_view_task_order_invitations(client, user_session):
|
||||
def test_can_view_task_order_invitations_when_complete(client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
user_session(portfolio.owner)
|
||||
task_order = TaskOrderFactory.create(portfolio=portfolio)
|
||||
@ -202,6 +216,27 @@ def test_can_view_task_order_invitations(client, user_session):
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_cant_view_task_order_invitations_when_not_complete(client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
user_session(portfolio.owner)
|
||||
task_order = TaskOrderFactory.create(portfolio=portfolio, clin_01=None)
|
||||
response = client.get(
|
||||
url_for(
|
||||
"portfolios.task_order_invitations",
|
||||
portfolio_id=portfolio.id,
|
||||
task_order_id=task_order.id,
|
||||
)
|
||||
)
|
||||
assert (
|
||||
url_for(
|
||||
"portfolios.view_task_order",
|
||||
task_order_id=task_order.id,
|
||||
portfolio_id=portfolio.id,
|
||||
)
|
||||
in response.location
|
||||
)
|
||||
|
||||
|
||||
def test_ko_can_view_ko_review_page(client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
ko = UserFactory.create()
|
||||
|
@ -20,6 +20,7 @@ base_public:
|
||||
title_tag: JEDI Cloud
|
||||
common:
|
||||
back: Back
|
||||
manage: manage
|
||||
save_and_continue: Save & Continue
|
||||
sign: Sign
|
||||
components:
|
||||
|
Loading…
x
Reference in New Issue
Block a user