Add second step
This commit is contained in:
parent
45390835ed
commit
6ab3e24883
@ -27,21 +27,9 @@ def render_task_orders_edit(template, portfolio_id=None, task_order_id=None, for
|
||||
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
|
||||
def update_task_order(
|
||||
form_data, next_page, current_template, portfolio_id=None, task_order_id=None
|
||||
):
|
||||
form = None
|
||||
if task_order_id:
|
||||
task_order = TaskOrders.get(task_order_id)
|
||||
@ -57,20 +45,64 @@ def upload_to_pdf(portfolio_id=None, task_order_id=None):
|
||||
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
|
||||
)
|
||||
)
|
||||
return redirect(url_for(next_page, task_order_id=task_order.id))
|
||||
else:
|
||||
return (
|
||||
render_task_orders_edit(
|
||||
"task_orders/step_1.html", portfolio_id, task_order_id, form
|
||||
current_template, portfolio_id, task_order_id, form
|
||||
),
|
||||
400,
|
||||
)
|
||||
|
||||
|
||||
@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=portfolio_id,
|
||||
task_order_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}
|
||||
next_page = "task_orders.add_to_number"
|
||||
current_template = "task_orders/step_1.html"
|
||||
|
||||
return update_task_order(
|
||||
form_data,
|
||||
next_page,
|
||||
current_template,
|
||||
portfolio_id=portfolio_id,
|
||||
task_order_id=task_order_id,
|
||||
)
|
||||
|
||||
|
||||
@task_orders_bp.route("/task_orders/<task_order_id>/step_2")
|
||||
@user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form")
|
||||
def add_to_number(task_order_id):
|
||||
return render_task_orders_edit(
|
||||
"task_orders/step_2.html", task_order_id=task_order_id
|
||||
)
|
||||
|
||||
|
||||
@task_orders_bp.route("/task_orders/<task_order_id>/step_2", methods=["POST"])
|
||||
@user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form")
|
||||
def update_to_number(task_order_id):
|
||||
form_data = {**http_request.form}
|
||||
next_page = "task_orders.add_to_pdf"
|
||||
current_template = "task_orders/step_2.html"
|
||||
|
||||
return update_task_order(
|
||||
form_data, next_page, current_template, task_order_id=task_order_id
|
||||
)
|
||||
|
||||
|
||||
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new")
|
||||
@task_orders_bp.route("/task_orders/<task_order_id>/edit")
|
||||
@user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form")
|
||||
|
45
templates/task_orders/step_2.html
Normal file
45
templates/task_orders/step_2.html
Normal file
@ -0,0 +1,45 @@
|
||||
{% extends "portfolios/base.html" %}
|
||||
|
||||
{% from "components/sticky_cta.html" import StickyCTA %}
|
||||
{% from 'components/text_input.html' import TextInput %}
|
||||
|
||||
{% block portfolio_content %}
|
||||
{% set action = url_for("task_orders.update_to_number", task_order_id=task_order_id) %}
|
||||
|
||||
<base-form inline-template>
|
||||
<form id="upload-to-pdf" action='{{ action }}' method="POST" autocomplete="off" enctype="multipart/form-data">
|
||||
{{ form.csrf_token }}
|
||||
|
||||
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
|
||||
<span class="action-group">
|
||||
<input
|
||||
type="submit"
|
||||
formaction="{{ action }}"
|
||||
tabindex="0"
|
||||
:disabled="!changed"
|
||||
value="Next: Add Base CLIN"
|
||||
form="upload-to-pdf"
|
||||
class="usa-button usa-button-primary">
|
||||
<input
|
||||
type="button"
|
||||
class="usa-button usa-button-secondary"
|
||||
tabindex="0"
|
||||
value="Previous"
|
||||
form="upload-to-pdf"/>
|
||||
<a
|
||||
href="{{ cancel_url }}"
|
||||
class="action-group__action icon-link">
|
||||
{{ "common.cancel" | translate }}
|
||||
</a>
|
||||
</span>
|
||||
{% endcall %}
|
||||
|
||||
<div class="h1">
|
||||
{{ 'task_orders.form.add_to_header' | translate }}
|
||||
</div>
|
||||
|
||||
{{ TextInput(form.number, validation='taskOrderNumber', optional=False) }}
|
||||
|
||||
</form>
|
||||
</base-form>
|
||||
{% endblock %}
|
@ -53,6 +53,26 @@ def test_task_orders_upload_to_pdf(
|
||||
assert task_order.pdf.filename == pdf_upload.filename
|
||||
|
||||
|
||||
def test_task_orders_add_to_number(client, user_session, task_order):
|
||||
user_session(task_order.creator)
|
||||
response = client.get(
|
||||
url_for("task_orders.add_to_number", task_order_id=task_order.id)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_task_orders_update_to_number(client, user_session, task_order):
|
||||
user_session(task_order.creator)
|
||||
form_data = {"number": "1234567890"}
|
||||
response = client.post(
|
||||
url_for("task_orders.update_to_number", task_order_id=task_order.id),
|
||||
data=form_data,
|
||||
)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert task_order.number == "1234567890"
|
||||
|
||||
|
||||
def test_task_orders_save_incomplete(client, user_session, portfolio):
|
||||
user_session(portfolio.owner)
|
||||
form_data = {
|
||||
@ -92,6 +112,27 @@ def test_task_orders_upload_to_pdf_existing_to(
|
||||
assert task_order.pdf.filename == pdf_upload.filename
|
||||
|
||||
|
||||
def test_task_orders_add_to_number_existing_to(client, user_session, task_order):
|
||||
user_session(task_order.creator)
|
||||
response = client.get(
|
||||
url_for("task_orders.add_to_number", task_order_id=task_order.id)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_task_orders_update_to_number_existing_to(client, user_session, task_order):
|
||||
user_session(task_order.creator)
|
||||
form_data = {"number": "0000000000"}
|
||||
original_number = task_order.number
|
||||
response = client.post(
|
||||
url_for("task_orders.upload_to_pdf", task_order_id=task_order.id),
|
||||
data=form_data,
|
||||
)
|
||||
assert response.status_code == 302
|
||||
assert task_order.number == "0000000000"
|
||||
assert task_order.number != original_number
|
||||
|
||||
|
||||
def test_task_orders_update_existing_to(client, user_session, task_order):
|
||||
user_session(task_order.creator)
|
||||
form_data = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user