Remove nesting from route when not needed

This commit is contained in:
leigh-mil 2019-06-12 10:14:46 -04:00
parent 61de7a5adf
commit 4e46827335
7 changed files with 21 additions and 53 deletions

View File

@ -42,8 +42,7 @@ class UnclassifiedCLINForm(CLINForm):
class TaskOrderForm(BaseForm): class TaskOrderForm(BaseForm):
number = StringField( number = StringField(
label=translate("forms.task_order.number_description"), label=translate("forms.task_order.number_description"), validators=[Required()]
validators=[Required()],
) )
pdf = FileField( pdf = FileField(
None, None,

View File

@ -8,11 +8,12 @@ from atst.models.permissions import Permissions
from atst.utils.flash import formatted_flash as flash from atst.utils.flash import formatted_flash as flash
def render_task_orders_edit(portfolio_id, task_order_id=None, form=None): def render_task_orders_edit(portfolio_id=None, task_order_id=None, form=None):
render_args = {} render_args = {}
if task_order_id: if task_order_id:
task_order = TaskOrders.get(task_order_id) task_order = TaskOrders.get(task_order_id)
portfolio_id = task_order.portfolio_id
render_args["form"] = form or TaskOrderForm(**task_order.to_dictionary()) render_args["form"] = form or TaskOrderForm(**task_order.to_dictionary())
render_args["task_order_id"] = task_order_id render_args["task_order_id"] = task_order_id
else: else:
@ -28,18 +29,16 @@ def render_task_orders_edit(portfolio_id, task_order_id=None, form=None):
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new") @task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new")
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/<task_order_id>/edit") @task_orders_bp.route("/task_orders/<task_order_id>/edit")
@user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form") @user_can(Permissions.CREATE_TASK_ORDER, message="view new task order form")
def edit(portfolio_id, task_order_id=None): def edit(portfolio_id=None, task_order_id=None):
return render_task_orders_edit(portfolio_id, task_order_id) return render_task_orders_edit(portfolio_id, task_order_id)
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new", methods=["POST"]) @task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new", methods=["POST"])
@task_orders_bp.route( @task_orders_bp.route("/task_orders/<task_order_id>", methods=["POST"])
"/portfolios/<portfolio_id>/task_orders/<task_order_id>", methods=["POST"]
)
@user_can(Permissions.CREATE_TASK_ORDER, message="create new task order") @user_can(Permissions.CREATE_TASK_ORDER, message="create new task order")
def update(portfolio_id, task_order_id=None): def update(portfolio_id=None, task_order_id=None):
form_data = {**http_request.form, **http_request.files} form_data = {**http_request.form, **http_request.files}
form = None form = None
@ -53,18 +52,13 @@ def update(portfolio_id, task_order_id=None):
task_order = None task_order = None
if task_order_id: if task_order_id:
task_order = TaskOrders.update(task_order_id, **form.data) task_order = TaskOrders.update(task_order_id, **form.data)
portfolio_id = task_order.portfolio_id
else: else:
task_order = TaskOrders.create(g.current_user, portfolio_id, **form.data) task_order = TaskOrders.create(g.current_user, portfolio_id, **form.data)
flash("task_order_draft") flash("task_order_draft")
return redirect( return redirect(url_for("task_orders.edit", task_order_id=task_order.id))
url_for(
"task_orders.edit",
portfolio_id=portfolio_id,
task_order_id=task_order.id,
)
)
else: else:
flash("form_errors") flash("form_errors")
return render_task_orders_edit(portfolio_id, task_order_id, form), 400 return render_task_orders_edit(portfolio_id, task_order_id, form), 400

View File

@ -42,7 +42,6 @@
a.action-group__action.icon-link { a.action-group__action.icon-link {
width: auto; width: auto;
} }
input { input {

View File

@ -22,7 +22,7 @@
{% endcall %} {% endcall %}
{% call StickyCTA(text="Review Funding") %} {% call StickyCTA(text="Review Funding") %}
<a href="{{ url_for("task_orders.edit", portfolio_id=portfolio.id, task_order_id=task_order.id) }}" class="usa-button usa-button-secondary" type="submit">Edit</a> <a href="{{ url_for("task_orders.edit", task_order_id=task_order.id) }}" class="usa-button usa-button-secondary" type="submit">Edit</a>
<a v-on:click="openModal('submit-to-1')" class="usa-button usa-button-primary" type="submit">Submit task order</a> <a v-on:click="openModal('submit-to-1')" class="usa-button usa-button-primary" type="submit">Submit task order</a>
{% endcall %} {% endcall %}

View File

@ -100,7 +100,7 @@
<div class="task-order"> <div class="task-order">
{% include "fragments/flash.html" %} {% include "fragments/flash.html" %}
{% if task_order_id %} {% if task_order_id %}
{% set action = url_for("task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order_id) %} {% set action = url_for("task_orders.update", task_order_id=task_order_id) %}
{% else %} {% else %}
{% set action = url_for("task_orders.update", portfolio_id=portfolio.id) %} {% set action = url_for("task_orders.update", portfolio_id=portfolio.id) %}
{% endif %} {% endif %}

View File

@ -68,13 +68,7 @@ def test_task_orders_update(client, user_session, portfolio):
def test_task_orders_edit_existing_to(client, user_session, task_order): def test_task_orders_edit_existing_to(client, user_session, task_order):
user_session(task_order.creator) user_session(task_order.creator)
response = client.get( response = client.get(url_for("task_orders.edit", task_order_id=task_order.id))
url_for(
"task_orders.edit",
portfolio_id=task_order.portfolio_id,
task_order_id=task_order.id,
)
)
assert response.status_code == 200 assert response.status_code == 200
@ -90,12 +84,7 @@ def test_task_orders_update_existing_to(client, user_session, task_order):
"clins-0-loas-0": "123123123123", "clins-0-loas-0": "123123123123",
} }
response = client.post( response = client.post(
url_for( url_for("task_orders.update", task_order_id=task_order.id), data=form_data
"task_orders.update",
portfolio_id=task_order.portfolio_id,
task_order_id=task_order.id,
),
data=form_data,
) )
assert response.status_code == 302 assert response.status_code == 302
assert task_order.number == "0123456789" assert task_order.number == "0123456789"
@ -115,12 +104,9 @@ def test_task_orders_update_invalid_data(client, user_session, portfolio):
def test_task_orders_update(client, user_session, portfolio, pdf_upload): def test_task_orders_update(client, user_session, portfolio, pdf_upload):
user_session(portfolio.owner) user_session(portfolio.owner)
data = {"number": "0123456789", "pdf": pdf_upload} data = {"number": "0123456789", "pdf": pdf_upload}
task_order = TaskOrderFactory.create(number="0987654321") task_order = TaskOrderFactory.create(number="0987654321", portfolio=portfolio)
response = client.post( response = client.post(
url_for( url_for("task_orders.update", task_order_id=task_order.id), data=data
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=data,
) )
assert response.status_code == 302 assert response.status_code == 302
assert task_order.number == data["number"] assert task_order.number == data["number"]
@ -130,13 +116,10 @@ def test_task_orders_update_pdf(
client, user_session, portfolio, pdf_upload, pdf_upload2 client, user_session, portfolio, pdf_upload, pdf_upload2
): ):
user_session(portfolio.owner) user_session(portfolio.owner)
task_order = TaskOrderFactory.create(pdf=pdf_upload) task_order = TaskOrderFactory.create(pdf=pdf_upload, portfolio=portfolio)
data = {"number": "0123456789", "pdf": pdf_upload2} data = {"number": "0123456789", "pdf": pdf_upload2}
response = client.post( response = client.post(
url_for( url_for("task_orders.update", task_order_id=task_order.id), data=data
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=data,
) )
assert response.status_code == 302 assert response.status_code == 302
assert task_order.pdf.filename == pdf_upload2.filename assert task_order.pdf.filename == pdf_upload2.filename
@ -144,13 +127,10 @@ def test_task_orders_update_pdf(
def test_task_orders_update_delete_pdf(client, user_session, portfolio, pdf_upload): def test_task_orders_update_delete_pdf(client, user_session, portfolio, pdf_upload):
user_session(portfolio.owner) user_session(portfolio.owner)
task_order = TaskOrderFactory.create(pdf=pdf_upload) task_order = TaskOrderFactory.create(pdf=pdf_upload, portfolio=portfolio)
data = {"number": "0123456789", "pdf": ""} data = {"number": "0123456789", "pdf": ""}
response = client.post( response = client.post(
url_for( url_for("task_orders.update", task_order_id=task_order.id), data=data
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=data,
) )
assert response.status_code == 302 assert response.status_code == 302
assert task_order.pdf is None assert task_order.pdf is None
@ -167,9 +147,7 @@ def test_task_order_form_shows_errors(client, user_session, task_order):
funding_data.update({"clin_01": "one milllllion dollars"}) funding_data.update({"clin_01": "one milllllion dollars"})
response = client.post( response = client.post(
url_for( url_for("task_orders.update", task_order_id=task_order.id),
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=funding_data, data=funding_data,
follow_redirects=False, follow_redirects=False,
) )

View File

@ -515,9 +515,7 @@ def test_task_orders_update_access(post_url_assert_status):
task_order = TaskOrderFactory.create(portfolio=portfolio) task_order = TaskOrderFactory.create(portfolio=portfolio)
url = url_for( url = url_for("task_orders.update", task_order_id=task_order.id)
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
)
post_url_assert_status(owner, url, 302) post_url_assert_status(owner, url, 302)
post_url_assert_status(ccpo, url, 302) post_url_assert_status(ccpo, url, 302)
post_url_assert_status(rando, url, 404) post_url_assert_status(rando, url, 404)