Display flash message on review page that TO is a draft

This commit is contained in:
George Drummond 2019-02-15 11:43:56 -05:00
parent e969c393fa
commit 7d4e14dff2
No known key found for this signature in database
GPG Key ID: 296DD6077123BF17
4 changed files with 40 additions and 0 deletions

View File

@ -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,

View File

@ -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": """

View File

@ -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

View File

@ -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