Display flash message on review page that TO is a draft
This commit is contained in:
parent
e969c393fa
commit
7d4e14dff2
@ -12,6 +12,7 @@ from flask import (
|
|||||||
from . import task_orders_bp
|
from . import task_orders_bp
|
||||||
from atst.domain.task_orders import TaskOrders
|
from atst.domain.task_orders import TaskOrders
|
||||||
from atst.domain.portfolios import Portfolios
|
from atst.domain.portfolios import Portfolios
|
||||||
|
from atst.utils.flash import formatted_flash as flash
|
||||||
import atst.forms.task_order as task_order_form
|
import atst.forms.task_order as task_order_form
|
||||||
|
|
||||||
|
|
||||||
@ -200,6 +201,12 @@ def get_started():
|
|||||||
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new/<int:screen>")
|
@task_orders_bp.route("/portfolios/<portfolio_id>/task_orders/new/<int:screen>")
|
||||||
def new(screen, task_order_id=None, portfolio_id=None):
|
def new(screen, task_order_id=None, portfolio_id=None):
|
||||||
workflow = ShowTaskOrderWorkflow(g.current_user, screen, task_order_id)
|
workflow = ShowTaskOrderWorkflow(g.current_user, screen, task_order_id)
|
||||||
|
|
||||||
|
if task_order_id and screen is 4:
|
||||||
|
task_order = TaskOrders.get(g.current_user, task_order_id)
|
||||||
|
if not TaskOrders.all_sections_complete(task_order):
|
||||||
|
flash("task_order_draft")
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
workflow.template,
|
workflow.template,
|
||||||
current=screen,
|
current=screen,
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
from flask import flash, render_template_string
|
from flask import flash, render_template_string
|
||||||
|
from atst.utils.localization import translate
|
||||||
|
|
||||||
MESSAGES = {
|
MESSAGES = {
|
||||||
|
"task_order_draft": {
|
||||||
|
"title_template": translate("task_orders.form.draft_alert_title"),
|
||||||
|
"message_template": """
|
||||||
|
<p>Please complete your Task Order before submitting it for approval.</p>
|
||||||
|
""",
|
||||||
|
"category": "warning",
|
||||||
|
},
|
||||||
"task_order_signed": {
|
"task_order_signed": {
|
||||||
"title_template": "Task Order Signed",
|
"title_template": "Task Order Signed",
|
||||||
"message_template": """
|
"message_template": """
|
||||||
|
@ -4,6 +4,7 @@ from flask import url_for
|
|||||||
from atst.domain.task_orders import TaskOrders
|
from atst.domain.task_orders import TaskOrders
|
||||||
from atst.models.attachment import Attachment
|
from atst.models.attachment import Attachment
|
||||||
from atst.routes.task_orders.new import ShowTaskOrderWorkflow, UpdateTaskOrderWorkflow
|
from atst.routes.task_orders.new import ShowTaskOrderWorkflow, UpdateTaskOrderWorkflow
|
||||||
|
from atst.utils.localization import translate
|
||||||
|
|
||||||
from tests.factories import UserFactory, TaskOrderFactory, PortfolioFactory
|
from tests.factories import UserFactory, TaskOrderFactory, PortfolioFactory
|
||||||
|
|
||||||
@ -142,6 +143,27 @@ def test_task_order_validates_email_address(client, user_session):
|
|||||||
assert "Invalid email" in body
|
assert "Invalid email" in body
|
||||||
|
|
||||||
|
|
||||||
|
def test_review_screen_when_all_sections_complete(client, user_session):
|
||||||
|
to = task_order()
|
||||||
|
user_session(to.creator)
|
||||||
|
response = client.get(url_for("task_orders.new", screen=4, task_order_id=to.id))
|
||||||
|
|
||||||
|
body = response.data.decode()
|
||||||
|
assert translate("task_orders.form.draft_alert_title") not in body
|
||||||
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
|
def test_review_screen_when_not_all_sections_complete(client, user_session):
|
||||||
|
to = task_order()
|
||||||
|
TaskOrders.update(to.creator, to, clin_01=None)
|
||||||
|
user_session(to.creator)
|
||||||
|
response = client.get(url_for("task_orders.new", screen=4, task_order_id=to.id))
|
||||||
|
|
||||||
|
body = response.data.decode()
|
||||||
|
assert translate("task_orders.form.draft_alert_title") in body
|
||||||
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def task_order():
|
def task_order():
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
@ -242,4 +264,5 @@ def test_review_task_order_form(client, user_session, task_order):
|
|||||||
response = client.get(
|
response = client.get(
|
||||||
url_for("task_orders.new", screen=idx + 1, task_order_id=task_order.id)
|
url_for("task_orders.new", screen=idx + 1, task_order_id=task_order.id)
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
@ -403,6 +403,8 @@ requests:
|
|||||||
questions_title_text: Questions related to JEDI Cloud migration
|
questions_title_text: Questions related to JEDI Cloud migration
|
||||||
rationalization_software_systems_tooltip: Rationalization is the DoD process to determine whether the application should move to the cloud.
|
rationalization_software_systems_tooltip: Rationalization is the DoD process to determine whether the application should move to the cloud.
|
||||||
task_orders:
|
task_orders:
|
||||||
|
form:
|
||||||
|
draft_alert_title: Your draft has been saved
|
||||||
sign:
|
sign:
|
||||||
digital_signature_description: I acknowledge that I have read and fully understand the DoD CCPO JEDI agreements and completed all the necessary steps, as detailed in the FAR (Federal Acquisition Regulation).
|
digital_signature_description: I acknowledge that I have read and fully understand the DoD CCPO JEDI agreements and completed all the necessary steps, as detailed in the FAR (Federal Acquisition Regulation).
|
||||||
digital_signature_label: Digital Signature
|
digital_signature_label: Digital Signature
|
||||||
|
Loading…
x
Reference in New Issue
Block a user