Merge pull request #149 from dod-ccpo/request-stuff

Small request form fixes
This commit is contained in:
patricksmithdds 2018-08-09 10:51:44 -04:00 committed by GitHub
commit c9363515be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 33 additions and 11 deletions

View File

@ -143,6 +143,10 @@ class Requests(object):
"primary_poc", "primary_poc",
] ]
existing_request_sections = request.body.keys() existing_request_sections = request.body.keys()
return request.status == "incomplete" and all( return request.status == RequestStatus.STARTED and all(
section in existing_request_sections for section in all_request_sections section in existing_request_sections for section in all_request_sections
) )
@classmethod
def is_pending_financial_verification(cls, request):
return request.status == RequestStatus.PENDING_FINANCIAL_VERIFICATION

View File

@ -1,5 +1,5 @@
import pendulum import pendulum
from flask import render_template, g from flask import render_template, g, url_for
from . import requests_bp from . import requests_bp
from atst.domain.requests import Requests from atst.domain.requests import Requests
@ -9,6 +9,8 @@ def map_request(request):
time_created = pendulum.instance(request.time_created) time_created = pendulum.instance(request.time_created)
is_new = time_created.add(days=1) > pendulum.now() is_new = time_created.add(days=1) > pendulum.now()
app_count = request.body.get("details_of_use", {}).get("num_software_systems", 0) app_count = request.body.get("details_of_use", {}).get("num_software_systems", 0)
update_url = url_for('requests.requests_form_update', screen=1, request_id=request.id)
verify_url = url_for('requests.financial_verification', request_id=request.id)
return { return {
"order_id": request.id, "order_id": request.id,
@ -17,6 +19,7 @@ def map_request(request):
"app_count": app_count, "app_count": app_count,
"date": time_created.format("M/DD/YYYY"), "date": time_created.format("M/DD/YYYY"),
"full_name": request.creator.full_name, "full_name": request.creator.full_name,
"edit_link": verify_url if Requests.is_pending_financial_verification(request) else update_url
} }

View File

@ -76,7 +76,7 @@ class JEDIRequestFlow(object):
@property @property
def can_submit(self): def can_submit(self):
return self.request and self.request.status != "incomplete" return self.request and Requests.should_allow_submission(self.request)
@property @property
def next_screen(self): def next_screen(self):

View File

@ -88,7 +88,7 @@
{% for r in requests %} {% for r in requests %}
<tr> <tr>
<th scope="row"> <th scope="row">
<a class='icon-link icon-link--large' href="{{ url_for('requests.requests_form_update', screen=1, request_id=r['order_id']) if r["status"] != "approved" else url_for('requests.financial_verification', request_id=r['order_id']) }}">{{ r['order_id'] }}</a> <a class='icon-link icon-link--large' href="{{ r['edit_link'] }}">{{ r['order_id'] }}</a>
{% if r['is_new'] %}<span class="usa-label">New</span> {% if r['is_new'] %}<span class="usa-label">New</span>
</th> </th>
{% endif %} {% endif %}

View File

@ -1,7 +1,15 @@
<div class="progress-menu progress-menu--four"> <div class="progress-menu progress-menu--four">
<ul> <ul>
{% for s in screens %} {% for s in screens %}
<li class="progress-menu__item"> {% if loop.index < current %}
{% set step_indicator = 'complete' %}
{% elif loop.index == current %}
{% set step_indicator = 'active' %}
{% else %}
{% set step_indicator = 'incomplete' %}
{% endif %}
<li class="progress-menu__item progress-menu__item--{{ step_indicator }}">
<a href="{{ url_for('requests.requests_form_update', screen=loop.index, request_id=request_id) if request_id else url_for('requests.requests_form_new', screen=loop.index) }}" <a href="{{ url_for('requests.requests_form_update', screen=loop.index, request_id=request_id) if request_id else url_for('requests.requests_form_new', screen=loop.index) }}"
{% if g.matchesPath('/requests/new/{{ loop.index + 1 }}') %}class="active"{% endif %} {% if g.matchesPath('/requests/new/{{ loop.index + 1 }}') %}class="active"{% endif %}
> >

View File

@ -50,6 +50,13 @@ def test_dont_auto_approve_if_no_dollar_value_specified(new_request):
assert request.status == RequestStatus.PENDING_CCPO_APPROVAL assert request.status == RequestStatus.PENDING_CCPO_APPROVAL
def test_should_allow_submission(new_request):
assert Requests.should_allow_submission(new_request)
del new_request.body['details_of_use']
assert not Requests.should_allow_submission(new_request)
def test_exists(session): def test_exists(session):
user_allowed = UserFactory.create() user_allowed = UserFactory.create()
user_denied = UserFactory.create() user_denied = UserFactory.create()