Add defense_component to Portfolio when new task_order is created without an existing portfolio
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user