Merge pull request #184 from dod-ccpo/financial-page-bug-159795524

review and submit page bugs (159795524 and 159889979)
This commit is contained in:
dandds 2018-08-20 12:50:55 -04:00 committed by GitHub
commit a574734a8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 35 additions and 15 deletions

View File

@ -137,6 +137,11 @@ class Requests(object):
return dollar_value < cls.AUTO_APPROVE_THRESHOLD return dollar_value < cls.AUTO_APPROVE_THRESHOLD
_VALID_SUBMISSION_STATUSES = [
RequestStatus.STARTED,
RequestStatus.CHANGES_REQUESTED,
]
@classmethod @classmethod
def should_allow_submission(cls, request): def should_allow_submission(cls, request):
all_request_sections = [ all_request_sections = [
@ -145,7 +150,7 @@ class Requests(object):
"primary_poc", "primary_poc",
] ]
existing_request_sections = request.body.keys() existing_request_sections = request.body.keys()
return request.status == RequestStatus.STARTED and all( return request.status in Requests._VALID_SUBMISSION_STATUSES and all(
section in existing_request_sections for section in all_request_sections section in existing_request_sections for section in all_request_sections
) )

View File

@ -27,3 +27,8 @@ class Request(Base):
@property @property
def status_displayname(self): def status_displayname(self):
return self.status_events[-1].displayname return self.status_events[-1].displayname
@property
def annual_spend(self):
monthly = self.body.get("details_of_use", {}).get("estimated_monthly_spend", 0)
return monthly * 12

View File

@ -10,7 +10,7 @@ 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)
annual_usage = request.body.get("details_of_use", {}).get("dollar_value", 0) annual_usage = request.annual_spend
update_url = url_for( update_url = url_for(
"requests.requests_form_update", screen=1, request_id=request.id "requests.requests_form_update", screen=1, request_id=request.id
) )

View File

@ -21,7 +21,7 @@
<p>Before you can submit your request, please take a moment to review the information entered in the form. You may make changes by clicking the edit link on each section. When all information looks right, go ahead and submit.</p> <p>Before you can submit your request, please take a moment to review the information entered in the form. You may make changes by clicking the edit link on each section. When all information looks right, go ahead and submit.</p>
{% if f.errors or not can_submit%} {% if f.errors or not can_submit %}
{{ Alert('Please complete all sections', {{ Alert('Please complete all sections',
message="<p>In order to submit your JEDI Cloud request, you'll need to complete all required sections of this form without error. Missing or invalid fields are noted below.</p>", message="<p>In order to submit your JEDI Cloud request, you'll need to complete all required sections of this form without error. Missing or invalid fields are noted below.</p>",
level='error' level='error'
@ -114,6 +114,7 @@
<dd>{{ data['details_of_use']['dollar_value'] or RequiredLabel() }}</dd> <dd>{{ data['details_of_use']['dollar_value'] or RequiredLabel() }}</dd>
</div> </div>
{% if jedi_request and jedi_request.annual_spend > 1000000 %}
<div> <div>
<dt>Number of User Sessions</dt> <dt>Number of User Sessions</dt>
<dd>{{ data['details_of_use']['number_user_sessions'] or RequiredLabel() }}</dd> <dd>{{ data['details_of_use']['number_user_sessions'] or RequiredLabel() }}</dd>
@ -128,6 +129,7 @@
<dt>Average Daily Traffic (GB)</dt> <dt>Average Daily Traffic (GB)</dt>
<dd>{{ data['details_of_use']['average_daily_traffic_gb'] or RequiredLabel() }}</dd> <dd>{{ data['details_of_use']['average_daily_traffic_gb'] or RequiredLabel() }}</dd>
</div> </div>
{% endif %}
<div> <div>
<dt>Start Date</dt> <dt>Start Date</dt>

View File

@ -54,6 +54,9 @@ def test_dont_auto_approve_if_no_dollar_value_specified(new_request):
def test_should_allow_submission(new_request): def test_should_allow_submission(new_request):
assert Requests.should_allow_submission(new_request) assert Requests.should_allow_submission(new_request)
RequestStatusEventFactory.create(request=new_request, new_status=RequestStatus.CHANGES_REQUESTED)
assert Requests.should_allow_submission(new_request)
del new_request.body['details_of_use'] del new_request.body['details_of_use']
assert not Requests.should_allow_submission(new_request) assert not Requests.should_allow_submission(new_request)

View File

@ -68,3 +68,8 @@ def test_request_status_pending_deleted_displayname():
request = Requests.set_status(request, RequestStatus.CANCELED) request = Requests.set_status(request, RequestStatus.CANCELED)
assert request.status_displayname == "Canceled" assert request.status_displayname == "Canceled"
def test_annual_spend():
request = RequestFactory.create()
monthly = request.body.get("details_of_use").get("estimated_monthly_spend")
assert request.annual_spend == monthly * 12