Add routes for first step of TO builder

This commit is contained in:
leigh-mil
2019-07-15 16:42:15 -04:00
parent c8d8b7cce2
commit 45390835ed
8 changed files with 147 additions and 35 deletions

View File

@@ -8,7 +8,7 @@ from atst.models.permissions import Permissions
from atst.utils.flash import formatted_flash as flash
def render_task_orders_edit(portfolio_id=None, task_order_id=None, form=None):
def render_task_orders_edit(template, portfolio_id=None, task_order_id=None, form=None):
render_args = {}
if task_order_id:
@@ -24,7 +24,51 @@ def render_task_orders_edit(portfolio_id=None, task_order_id=None, form=None):
"task_orders.portfolio_funding", portfolio_id=portfolio_id
)
return render_template("task_orders/edit.html", **render_args)
return render_template(template, **render_args)
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/step_1")
@task_orders_bp.route("/task_orders/<task_order_id>/step_1")
@user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form")
def add_to_pdf(portfolio_id=None, task_order_id=None):
return render_task_orders_edit(
"task_orders/step_1.html", portfolio_id, task_order_id
)
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/step-1", methods=["POST"])
@task_orders_bp.route("/task_orders/<task_order_id>/step_1", methods=["POST"])
@user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form")
def upload_to_pdf(portfolio_id=None, task_order_id=None):
form_data = {**http_request.form, **http_request.files}
# todo: pass in route for step 2
form = None
if task_order_id:
task_order = TaskOrders.get(task_order_id)
form = TaskOrderForm(form_data, obj=task_order)
else:
form = TaskOrderForm(form_data)
if form.validate():
task_order = None
if task_order_id:
task_order = TaskOrders.update(task_order_id, **form.data)
portfolio_id = task_order.portfolio_id
else:
task_order = TaskOrders.create(g.current_user, portfolio_id, **form.data)
return redirect(
url_for(
"task_orders.portfolio_funding", portfolio_id=task_order.portfolio_id
)
)
else:
return (
render_task_orders_edit(
"task_orders/step_1.html", portfolio_id, task_order_id, form
),
400,
)
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new")
@@ -64,11 +108,21 @@ def update(portfolio_id=None, task_order_id=None):
)
# User is trying to review and submit but the TO is not finished
elif http_request.args.get("review"):
return render_task_orders_edit(portfolio_id, task_order_id, form), 400
return (
render_task_orders_edit(
"task_orders/step_1.html", portfolio_id, task_order_id, form
),
400,
)
# User is saving valid but incomplete TO state
else:
flash("task_order_draft")
return redirect(url_for("task_orders.edit", task_order_id=task_order.id))
else:
return render_task_orders_edit(portfolio_id, task_order_id, form), 400
return (
render_task_orders_edit(
"task_orders/step_1.html", portfolio_id, task_order_id, form
),
400,
)