Add defense_component to Portfolio when new task_order is created without an existing portfolio

This commit is contained in:
Montana
2019-02-26 10:26:23 -05:00
parent f8a6d04d64
commit 7ee8858cc7
7 changed files with 26 additions and 8 deletions

View File

@@ -16,8 +16,10 @@ class PortfolioError(Exception):
class Portfolios(object):
@classmethod
def create(cls, user, name):
portfolio = PortfoliosQuery.create(name=name)
def create(cls, user, name, defense_component):
portfolio = PortfoliosQuery.create(
name=name, defense_component=defense_component
)
Portfolios._create_portfolio_role(
user, portfolio, "owner", status=PortfolioRoleStatus.ACTIVE
)

View File

@@ -53,7 +53,6 @@ class TaskOrder(Base, mixins.TimestampsMixin):
dd_254 = relationship("DD254")
scope = Column(String) # Cloud Project Scope
defense_component = Column(String) # Department of Defense Component
app_migration = Column(String) # App Migration
native_apps = Column(String) # Native Apps
complexity = Column(ARRAY(String)) # Application Complexity
@@ -172,6 +171,10 @@ class TaskOrder(Base, mixins.TimestampsMixin):
def portfolio_name(self):
return self.portfolio.name
@property
def defense_component(self):
return self.portfolio.defense_component
@property
def is_pending(self):
return self.status == Status.PENDING

View File

@@ -149,6 +149,8 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
to_data = self.form.data.copy()
if "portfolio_name" in to_data:
to_data.pop("portfolio_name")
if "defense_component" in to_data:
to_data.pop("defense_component")
# don't save other text in DB unless "other" is checked
if "complexity" in to_data and "other" not in to_data["complexity"]:
@@ -184,7 +186,11 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
if self.portfolio_id:
pf = Portfolios.get(self.user, self.portfolio_id)
else:
pf = Portfolios.create(self.user, self.form.portfolio_name.data)
pf = Portfolios.create(
self.user,
self.form.portfolio_name.data,
self.form.defense_component.data,
)
self._task_order = TaskOrders.create(portfolio=pf, creator=self.user)
TaskOrders.update(self.user, self.task_order, **self.task_order_form_data)