Merge pull request #857 from dod-ccpo/new-portfolio-workflow

New Portfolio Workflow
This commit is contained in:
George Drummond
2019-06-04 13:12:39 -04:00
committed by GitHub
12 changed files with 312 additions and 15 deletions

View File

@@ -1,8 +1,9 @@
from datetime import date, timedelta
from flask import render_template, request as http_request, g
from flask import redirect, render_template, url_for, request as http_request, g
from . import portfolios_bp
from atst.forms.portfolio import PortfolioCreationForm
from atst.domain.reports import Reports
from atst.domain.portfolios import Portfolios
from atst.models.permissions import Permissions
@@ -19,6 +20,26 @@ def portfolios():
return render_template("portfolios/blank_slate.html")
@portfolios_bp.route("/portfolios/new")
def new_portfolio():
form = PortfolioCreationForm()
return render_template("portfolios/new.html", form=form)
@portfolios_bp.route("/portfolios", methods=["POST"])
def create_portfolio():
form = PortfolioCreationForm(http_request.form)
if form.validate():
portfolio = Portfolios.create(user=g.current_user, portfolio_attrs=form.data)
return redirect(
url_for("applications.portfolio_applications", portfolio_id=portfolio.id)
)
else:
return render_template("portfolios/new.html", form=form), 400
@portfolios_bp.route("/portfolios/<portfolio_id>/reports")
@user_can(Permissions.VIEW_PORTFOLIO_REPORTS, message="view portfolio reports")
def reports(portfolio_id):

View File

@@ -242,9 +242,11 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
pf = Portfolios.get(self.user, self.portfolio_id)
else:
pf = Portfolios.create(
self.user,
self.form.portfolio_name.data,
self.form.defense_component.data,
user=self.user,
portfolio_attrs={
"name": self.form.portfolio_name.data,
"defense_component": self.form.defense_component.data,
},
)
self._task_order = TaskOrders.create(portfolio=pf, creator=self.user)
TaskOrders.update(self.task_order, **self.task_order_form_data)