small refactors to new TO workflow classes
This commit is contained in:
parent
1b329b9659
commit
f57af648f8
@ -50,9 +50,10 @@ class ShowTaskOrderWorkflow:
|
|||||||
self.user = user
|
self.user = user
|
||||||
self.screen = screen
|
self.screen = screen
|
||||||
self.task_order_id = task_order_id
|
self.task_order_id = task_order_id
|
||||||
self.portfolio_id = portfolio_id
|
|
||||||
self._section = TASK_ORDER_SECTIONS[screen - 1]
|
|
||||||
self._task_order = None
|
self._task_order = None
|
||||||
|
self.portfolio_id = portfolio_id
|
||||||
|
self._portfolio = None
|
||||||
|
self._section = TASK_ORDER_SECTIONS[screen - 1]
|
||||||
self._form = None
|
self._form = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -64,9 +65,13 @@ class ShowTaskOrderWorkflow:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def portfolio(self):
|
def portfolio(self):
|
||||||
if self.task_order:
|
if not self._portfolio:
|
||||||
return self.task_order.portfolio
|
if self.task_order:
|
||||||
return Portfolios.get(self.user, self.portfolio_id)
|
self._portfolio = self.task_order.portfolio
|
||||||
|
elif self.portfolio_id:
|
||||||
|
self._portfolio = Portfolios.get(self.user, self.portfolio_id)
|
||||||
|
|
||||||
|
return self._portfolio
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def form(self):
|
def form(self):
|
||||||
@ -97,17 +102,13 @@ class ShowTaskOrderWorkflow:
|
|||||||
else:
|
else:
|
||||||
self._form = self._section[form_type]()
|
self._form = self._section[form_type]()
|
||||||
|
|
||||||
if self.pf_attributes_read_only() and self.screen == 1:
|
if self.pf_attributes_read_only and self.screen == 1:
|
||||||
self._form = task_order_form.AppInfoWithExistingPortfolioForm(
|
self._form = task_order_form.AppInfoWithExistingPortfolioForm(
|
||||||
obj=self.task_order
|
obj=self.task_order
|
||||||
)
|
)
|
||||||
|
|
||||||
return self._form
|
return self._form
|
||||||
|
|
||||||
@form.setter
|
|
||||||
def form(self, value):
|
|
||||||
self._form = value
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def template(self):
|
def template(self):
|
||||||
return self._section["template"]
|
return self._section["template"]
|
||||||
@ -126,19 +127,19 @@ class ShowTaskOrderWorkflow:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def is_complete(self):
|
def is_complete(self):
|
||||||
if self.task_order:
|
if self.task_order and TaskOrders.all_sections_complete(self.task_order):
|
||||||
if TaskOrders.all_sections_complete(self.task_order):
|
return True
|
||||||
return True
|
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@property
|
||||||
def pf_attributes_read_only(self):
|
def pf_attributes_read_only(self):
|
||||||
if self.task_order:
|
if self.task_order and self.portfolio.num_task_orders > 1:
|
||||||
if self.task_order.portfolio.num_task_orders > 1:
|
return True
|
||||||
return True
|
|
||||||
elif self.portfolio_id:
|
elif self.portfolio_id:
|
||||||
return True
|
return True
|
||||||
return False
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
|
class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
|
||||||
@ -152,17 +153,27 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
|
|||||||
self.portfolio_id = portfolio_id
|
self.portfolio_id = portfolio_id
|
||||||
self._task_order = None
|
self._task_order = None
|
||||||
self._section = TASK_ORDER_SECTIONS[screen - 1]
|
self._section = TASK_ORDER_SECTIONS[screen - 1]
|
||||||
form_type = (
|
self._form = None
|
||||||
"unclassified_form"
|
|
||||||
if "unclassified_form" in self._section and not app.config.get("CLASSIFIED")
|
|
||||||
else "form"
|
|
||||||
)
|
|
||||||
self._form = self._section[form_type](self.form_data, obj=self.task_order)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def form(self):
|
def form(self):
|
||||||
if self.pf_attributes_read_only() and self.screen == 1:
|
if not self._form:
|
||||||
return task_order_form.AppInfoWithExistingPortfolioForm(self.form_data)
|
form_type = (
|
||||||
|
"unclassified_form"
|
||||||
|
if "unclassified_form" in self._section
|
||||||
|
and not app.config.get("CLASSIFIED")
|
||||||
|
else "form"
|
||||||
|
)
|
||||||
|
|
||||||
|
if self.pf_attributes_read_only and self.screen == 1:
|
||||||
|
self._form = task_order_form.AppInfoWithExistingPortfolioForm(
|
||||||
|
self.form_data
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self._form = self._section[form_type](
|
||||||
|
self.form_data, obj=self.task_order
|
||||||
|
)
|
||||||
|
|
||||||
return self._form
|
return self._form
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -247,7 +258,7 @@ def new(screen, task_order_id=None, portfolio_id=None):
|
|||||||
if not TaskOrders.all_sections_complete(workflow.task_order):
|
if not TaskOrders.all_sections_complete(workflow.task_order):
|
||||||
flash("task_order_draft")
|
flash("task_order_draft")
|
||||||
|
|
||||||
if workflow.pf_attributes_read_only():
|
if workflow.pf_attributes_read_only:
|
||||||
template_args["portfolio"] = workflow.portfolio
|
template_args["portfolio"] = workflow.portfolio
|
||||||
|
|
||||||
url_args = {"screen": screen}
|
url_args = {"screen": screen}
|
||||||
|
@ -65,7 +65,7 @@ def serialize_dates(data):
|
|||||||
def test_new_to_can_edit_pf_attributes_screen_1():
|
def test_new_to_can_edit_pf_attributes_screen_1():
|
||||||
portfolio = PortfolioFactory.create()
|
portfolio = PortfolioFactory.create()
|
||||||
workflow = ShowTaskOrderWorkflow(user=portfolio.owner)
|
workflow = ShowTaskOrderWorkflow(user=portfolio.owner)
|
||||||
assert not workflow.pf_attributes_read_only()
|
assert not workflow.pf_attributes_read_only
|
||||||
|
|
||||||
|
|
||||||
def test_new_pf_can_edit_pf_attributes_on_back_navigation():
|
def test_new_pf_can_edit_pf_attributes_on_back_navigation():
|
||||||
@ -74,7 +74,7 @@ def test_new_pf_can_edit_pf_attributes_on_back_navigation():
|
|||||||
pf_workflow = ShowTaskOrderWorkflow(
|
pf_workflow = ShowTaskOrderWorkflow(
|
||||||
user=pf_task_order.creator, task_order_id=pf_task_order.id
|
user=pf_task_order.creator, task_order_id=pf_task_order.id
|
||||||
)
|
)
|
||||||
assert not pf_workflow.pf_attributes_read_only()
|
assert not pf_workflow.pf_attributes_read_only
|
||||||
|
|
||||||
|
|
||||||
def test_to_on_pf_cannot_edit_pf_attributes():
|
def test_to_on_pf_cannot_edit_pf_attributes():
|
||||||
@ -83,14 +83,14 @@ def test_to_on_pf_cannot_edit_pf_attributes():
|
|||||||
|
|
||||||
workflow = ShowTaskOrderWorkflow(user=portfolio.owner, portfolio_id=portfolio.id)
|
workflow = ShowTaskOrderWorkflow(user=portfolio.owner, portfolio_id=portfolio.id)
|
||||||
assert portfolio.num_task_orders == 1
|
assert portfolio.num_task_orders == 1
|
||||||
assert workflow.pf_attributes_read_only()
|
assert workflow.pf_attributes_read_only
|
||||||
|
|
||||||
second_task_order = TaskOrderFactory(portfolio=portfolio)
|
second_task_order = TaskOrderFactory(portfolio=portfolio)
|
||||||
second_workflow = ShowTaskOrderWorkflow(
|
second_workflow = ShowTaskOrderWorkflow(
|
||||||
user=portfolio.owner, task_order_id=second_task_order.id
|
user=portfolio.owner, task_order_id=second_task_order.id
|
||||||
)
|
)
|
||||||
assert portfolio.num_task_orders > 1
|
assert portfolio.num_task_orders > 1
|
||||||
assert second_workflow.pf_attributes_read_only()
|
assert second_workflow.pf_attributes_read_only
|
||||||
|
|
||||||
|
|
||||||
# TODO: this test will need to be more complicated when we add validation to
|
# TODO: this test will need to be more complicated when we add validation to
|
||||||
|
Loading…
x
Reference in New Issue
Block a user