diff --git a/atst/routes/task_orders/new.py b/atst/routes/task_orders/new.py index 5cc7a5a3..1a7ae25a 100644 --- a/atst/routes/task_orders/new.py +++ b/atst/routes/task_orders/new.py @@ -70,10 +70,10 @@ class ShowTaskOrderWorkflow: task_order_dict[field] = "" # don't save other text in DB unless "other" is checked - if 'other' not in task_order_dict['complexity']: - task_order_dict['complexity_other'] = "" - if 'other' not in task_order_dict['dev_team']: - task_order_dict['dev_team_other'] = "" + if "other" not in task_order_dict["complexity"]: + task_order_dict["complexity_other"] = "" + if "other" not in task_order_dict["dev_team"]: + task_order_dict["dev_team_other"] = "" return task_order_dict @@ -133,18 +133,28 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow): if self.task_order: return self.task_order.portfolio + @property + def task_order_form_data(self): + to_data = self.form.data.copy() + if "portfolio_name" in to_data: + new_name = self.form.data["portfolio_name"] + old_name = self.task_order.to_dictionary()["portfolio_name"] + if not new_name is old_name: + Portfolios.update(self.task_order.portfolio, {"name": new_name}) + to_data.pop("portfolio_name") + + return to_data + def validate(self): return self.form.validate() def _update_task_order(self): if self.task_order: - TaskOrders.update(self.user, self.task_order, **self.form.data) + TaskOrders.update(self.user, self.task_order, **self.task_order_form_data) else: - ws = Portfolios.create(self.user, self.form.portfolio_name.data) - to_data = self.form.data.copy() - to_data.pop("portfolio_name") - self._task_order = TaskOrders.create(self.user, ws) - TaskOrders.update(self.user, self.task_order, **to_data) + pf = Portfolios.create(self.user, self.form.portfolio_name.data) + self._task_order = TaskOrders.create(portfolio=pf, creator=self.user) + TaskOrders.update(self.user, self.task_order, **self.task_order_form_data) OFFICER_INVITATIONS = [ { @@ -192,10 +202,10 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow): officer = TaskOrders.add_officer( self.user, self.task_order, officer_type["role"], officer_data ) - ws_officer_member = PortfolioRoles.get(self.portfolio.id, officer.id) + pf_officer_member = PortfolioRoles.get(self.portfolio.id, officer.id) invite_service = InvitationService( self.user, - ws_officer_member, + pf_officer_member, officer_data["email"], subject=officer_type["subject"], email_template=officer_type["template"],