Use new form

This commit is contained in:
Montana 2019-03-06 16:26:57 -05:00
parent be192081bc
commit 93545d2dc9
2 changed files with 17 additions and 14 deletions

View File

@ -122,10 +122,7 @@ class ShowTaskOrderWorkflow:
def can_edit_pf_attributes(self, portfolio_id=None): def can_edit_pf_attributes(self, portfolio_id=None):
if self.task_order: if self.task_order:
if ( if self.task_order.portfolio.num_task_orders > 1:
self.task_order.portfolio.num_task_orders > 1
or not portfolio_id is None
):
return False return False
elif portfolio_id: elif portfolio_id:
if self.get_portfolio(portfolio_id).num_task_orders > 0: if self.get_portfolio(portfolio_id).num_task_orders > 0:
@ -237,6 +234,10 @@ def new(screen, task_order_id=None, portfolio_id=None):
"form": workflow.form, "form": workflow.form,
"complete": workflow.is_complete, "complete": workflow.is_complete,
} }
if not workflow.can_edit_pf_attributes(portfolio_id):
template_args["portfolio"] = workflow.get_portfolio(
user=g.current_user, portfolio_id=portfolio_id
)
if not workflow.can_edit_pf_attributes(portfolio_id): if not workflow.can_edit_pf_attributes(portfolio_id):
template_args["portfolio"] = workflow.get_portfolio(portfolio_id=portfolio_id) template_args["portfolio"] = workflow.get_portfolio(portfolio_id=portfolio_id)
@ -246,10 +247,11 @@ def new(screen, task_order_id=None, portfolio_id=None):
if not TaskOrders.all_sections_complete(task_order): if not TaskOrders.all_sections_complete(task_order):
flash("task_order_draft") flash("task_order_draft")
if portfolio_id: if screen == 1:
template_args["portfolio"] = Portfolios.get(g.current_user, portfolio_id) if portfolio_id or workflow.task_order.portfolio.num_task_orders > 1:
if screen == 1: workflow.form = task_order_form.AppInfoWithExistingPortfolioForm(
workflow.form = task_order_form.AppInfoWithExistingPortfolioForm() obj=workflow.task_order
)
url_args = {"screen": screen} url_args = {"screen": screen}
if task_order_id: if task_order_id:

View File

@ -48,10 +48,13 @@ def test_new_to_can_edit_pf_attributes_screen_1():
assert workflow.can_edit_pf_attributes(portfolio.id) assert workflow.can_edit_pf_attributes(portfolio.id)
def test_new_to_can_edit_pf_attributes_on_return_to_screen_1(): def test_new_pf_can_edit_pf_attributes_on_back_navigation():
portfolio = PortfolioFactory.create() portfolio = PortfolioFactory.create()
workflow = ShowTaskOrderWorkflow(user=portfolio.owner) pf_task_order = TaskOrderFactory(portfolio=portfolio)
assert workflow.can_edit_pf_attributes() pf_workflow = ShowTaskOrderWorkflow(
user=pf_task_order.creator, task_order_id=pf_task_order.id
)
assert pf_workflow.can_edit_pf_attributes()
def test_to_on_pf_cannot_edit_pf_attributes(): def test_to_on_pf_cannot_edit_pf_attributes():
@ -60,10 +63,7 @@ def test_to_on_pf_cannot_edit_pf_attributes():
workflow = ShowTaskOrderWorkflow(user=portfolio.owner) workflow = ShowTaskOrderWorkflow(user=portfolio.owner)
assert portfolio.num_task_orders == 1 assert portfolio.num_task_orders == 1
# case: TO is created from am existing portfolio
assert not workflow.can_edit_pf_attributes(portfolio.id) assert not workflow.can_edit_pf_attributes(portfolio.id)
# case: Portfolio is being created and user navigates back to app_info screen
assert workflow.can_edit_pf_attributes()
second_task_order = TaskOrderFactory(portfolio=portfolio) second_task_order = TaskOrderFactory(portfolio=portfolio)
workflow = ShowTaskOrderWorkflow( workflow = ShowTaskOrderWorkflow(
@ -72,6 +72,7 @@ def test_to_on_pf_cannot_edit_pf_attributes():
assert portfolio.num_task_orders > 1 assert portfolio.num_task_orders > 1
assert not workflow.can_edit_pf_attributes() assert not workflow.can_edit_pf_attributes()
def test_get_portfolio_when_task_order_exists(): def test_get_portfolio_when_task_order_exists():
portfolio = PortfolioFactory.create() portfolio = PortfolioFactory.create()
task_order = TaskOrderFactory(portfolio=portfolio) task_order = TaskOrderFactory(portfolio=portfolio)