Don't flash when cancelling TO form with invalid data
This commit is contained in:
@@ -30,9 +30,9 @@ class BaseForm(FlaskForm):
|
|||||||
_data[field] = None
|
_data[field] = None
|
||||||
return _data
|
return _data
|
||||||
|
|
||||||
def validate(self, *args, **kwargs):
|
def validate(self, *args, flash_invalid=True, **kwargs):
|
||||||
valid = super().validate(*args, **kwargs)
|
valid = super().validate(*args, **kwargs)
|
||||||
if not valid:
|
if not valid and flash_invalid:
|
||||||
flash("form_errors")
|
flash("form_errors")
|
||||||
return valid
|
return valid
|
||||||
|
|
||||||
|
@@ -139,7 +139,7 @@ def cancel_edit(task_order_id=None, portfolio_id=None):
|
|||||||
else:
|
else:
|
||||||
form = TaskOrderForm(form_data)
|
form = TaskOrderForm(form_data)
|
||||||
|
|
||||||
if form.validate():
|
if form.validate(flash_invalid=False):
|
||||||
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)
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from flask import url_for
|
from flask import url_for, get_flashed_messages
|
||||||
from datetime import timedelta, date
|
from datetime import timedelta, date
|
||||||
|
|
||||||
from atst.domain.task_orders import TaskOrders
|
from atst.domain.task_orders import TaskOrders
|
||||||
@@ -342,9 +342,10 @@ def test_cancel_can_create_new_to(client, user_session, portfolio):
|
|||||||
def test_cancel_edit_does_not_save_invalid_form_input(client, user_session, session):
|
def test_cancel_edit_does_not_save_invalid_form_input(client, user_session, session):
|
||||||
task_order = TaskOrderFactory.create()
|
task_order = TaskOrderFactory.create()
|
||||||
user_session(task_order.portfolio.owner)
|
user_session(task_order.portfolio.owner)
|
||||||
|
bad_data = {"clins-0-jedi_clin_type": "foo"}
|
||||||
response = client.post(
|
response = client.post(
|
||||||
url_for("task_orders.cancel_edit", task_order_id=task_order.id, save=True),
|
url_for("task_orders.cancel_edit", task_order_id=task_order.id, save=True),
|
||||||
data={"clins": "not really clins"},
|
data=bad_data,
|
||||||
)
|
)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
|
|
||||||
@@ -353,6 +354,22 @@ def test_cancel_edit_does_not_save_invalid_form_input(client, user_session, sess
|
|||||||
assert updated_task_order.clins == task_order.clins
|
assert updated_task_order.clins == task_order.clins
|
||||||
|
|
||||||
|
|
||||||
|
def test_cancel_edit_on_invalid_input_does_not_flash(
|
||||||
|
app, client, user_session, session
|
||||||
|
):
|
||||||
|
task_order = TaskOrderFactory.create()
|
||||||
|
user_session(task_order.portfolio.owner)
|
||||||
|
|
||||||
|
bad_data = {"clins-0-jedi_clin_type": "foo"}
|
||||||
|
|
||||||
|
response = client.post(
|
||||||
|
url_for("task_orders.cancel_edit", task_order_id=task_order.id, save=True),
|
||||||
|
data=bad_data,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert len(get_flashed_messages()) == 0
|
||||||
|
|
||||||
|
|
||||||
def test_cancel_edit_without_saving(client, user_session, session):
|
def test_cancel_edit_without_saving(client, user_session, session):
|
||||||
task_order = TaskOrderFactory.create(number=None)
|
task_order = TaskOrderFactory.create(number=None)
|
||||||
user_session(task_order.portfolio.owner)
|
user_session(task_order.portfolio.owner)
|
||||||
|
Reference in New Issue
Block a user