Add routes for first step of TO builder
This commit is contained in:
@@ -53,9 +53,7 @@ class CLINForm(FlaskForm):
|
||||
|
||||
|
||||
class TaskOrderForm(BaseForm):
|
||||
number = StringField(
|
||||
label=translate("forms.task_order.number_description"), validators=[Required()]
|
||||
)
|
||||
number = StringField(label=translate("forms.task_order.number_description"))
|
||||
pdf = FileField(
|
||||
None,
|
||||
description=translate("task_orders.form.supporting_docs_size_limit"),
|
||||
|
@@ -15,7 +15,7 @@ from atst.utils.flash import formatted_flash as flash
|
||||
def review_task_order(task_order_id):
|
||||
task_order = TaskOrders.get(task_order_id)
|
||||
if task_order.is_draft:
|
||||
return redirect(url_for("task_orders.edit", task_order_id=task_order.id))
|
||||
return redirect(url_for("task_orders.add_to_pdf", task_order_id=task_order.id))
|
||||
else:
|
||||
signature_form = SignatureForm()
|
||||
return render_template(
|
||||
|
@@ -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,
|
||||
)
|
||||
|
Reference in New Issue
Block a user