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):
number = StringField(
label=translate("forms.task_order.number_description"),
validators=[Required()],
label=translate("forms.task_order.number_description"), validators=[Required()]
)
pdf = FileField(
None,

View File

@ -8,11 +8,12 @@ from atst.models.permissions import Permissions
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 = {}
if 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["task_order_id"] = task_order_id
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/<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")
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)
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new", methods=["POST"])
@task_orders_bp.route(
"/portfolios/<portfolio_id>/task_orders/<task_order_id>", methods=["POST"]
)
@task_orders_bp.route("/task_orders/<task_order_id>", methods=["POST"])
@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 = None
@ -53,18 +52,13 @@ def update(portfolio_id, task_order_id=None):
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)
flash("task_order_draft")
return redirect(
url_for(
"task_orders.edit",
portfolio_id=portfolio_id,
task_order_id=task_order.id,
)
)
return redirect(url_for("task_orders.edit", task_order_id=task_order.id))
else:
flash("form_errors")
return render_task_orders_edit(portfolio_id, task_order_id, form), 400

View File

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

View File

@ -22,7 +22,7 @@
{% endcall %}
{% 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>
{% endcall %}

View File

@ -100,7 +100,7 @@
<div class="task-order">
{% include "fragments/flash.html" %}
{% 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 %}
{% set action = url_for("task_orders.update", portfolio_id=portfolio.id) %}
{% 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):
user_session(task_order.creator)
response = client.get(
url_for(
"task_orders.edit",
portfolio_id=task_order.portfolio_id,
task_order_id=task_order.id,
)
)
response = client.get(url_for("task_orders.edit", task_order_id=task_order.id))
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",
}
response = client.post(
url_for(
"task_orders.update",
portfolio_id=task_order.portfolio_id,
task_order_id=task_order.id,
),
data=form_data,
url_for("task_orders.update", task_order_id=task_order.id), data=form_data
)
assert response.status_code == 302
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):
user_session(portfolio.owner)
data = {"number": "0123456789", "pdf": pdf_upload}
task_order = TaskOrderFactory.create(number="0987654321")
task_order = TaskOrderFactory.create(number="0987654321", portfolio=portfolio)
response = client.post(
url_for(
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=data,
url_for("task_orders.update", task_order_id=task_order.id), data=data
)
assert response.status_code == 302
assert task_order.number == data["number"]
@ -130,13 +116,10 @@ def test_task_orders_update_pdf(
client, user_session, portfolio, pdf_upload, pdf_upload2
):
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}
response = client.post(
url_for(
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=data,
url_for("task_orders.update", task_order_id=task_order.id), data=data
)
assert response.status_code == 302
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):
user_session(portfolio.owner)
task_order = TaskOrderFactory.create(pdf=pdf_upload)
task_order = TaskOrderFactory.create(pdf=pdf_upload, portfolio=portfolio)
data = {"number": "0123456789", "pdf": ""}
response = client.post(
url_for(
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
data=data,
url_for("task_orders.update", task_order_id=task_order.id), data=data
)
assert response.status_code == 302
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"})
response = client.post(
url_for(
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
),
url_for("task_orders.update", task_order_id=task_order.id),
data=funding_data,
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)
url = url_for(
"task_orders.update", portfolio_id=portfolio.id, task_order_id=task_order.id
)
url = url_for("task_orders.update", task_order_id=task_order.id)
post_url_assert_status(owner, url, 302)
post_url_assert_status(ccpo, url, 302)
post_url_assert_status(rando, url, 404)