Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/src/application/application.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ registerEnumType(ApplicationPhase, {
APPROVAL: { description: 'The applicant has submitted the application and any PREAPPROVAL requirements are passing. The application is under review.' },
READY_FOR_WORKFLOW: { description: 'No application requirements are PENDING. The application is ready for the first workflow stage, but a reviewer must manually advance the phase. This phase will be automatically skipped if there are no workflow stages configured/enabled.' },
WORKFLOW_BLOCKING: { description: 'The application review has been completed and now there is a workflow process to audit the review BEFORE marking the application status as eligible or ineligible. It should remain pending until the blocking workflow stages have been completed. Workflow stages that evaluate to INELIGIBLE will also make the application status INELIGIBLE. Prompts from the applicant and review phases are locked.' },
REVIEW_COMPLETE: { description: 'The application has been reviewed and any blocking workflow stages have been completed. The application is ready for results (whether eligible or not) to be released to the applicant. A reviewer must manually advanced the phase, and will do so for the whole appRequest, not one application at a time. So the application will sit in this state until all applications are REVIEW_COMPLETE. If there is no acceptance phase (because there are no acceptance requirements), or if the application is not eligible, the makeOffer prompt will move the phase to WORKFLOW_NONBLOCKING or COMPLETE.' },
REVIEW_COMPLETE: { description: 'The application has been reviewed and any blocking workflow stages have been completed. Its results (whether eligible or not) are released to the applicant as soon as it reaches this phase - the eligibility decision no longer waits for the appRequest Complete Review. A reviewer must still manually advance the appRequest phase, so the application will sit in this state until all applications are REVIEW_COMPLETE and the reviewer completes the review. If there is no acceptance phase, or if the application is not eligible, the makeOffer prompt will move the phase to WORKFLOW_NONBLOCKING or COMPLETE.' },
ACCEPTANCE: { description: 'The application has been reviewed and an offer has been made to the applicant. The applicant must accept the offer.' },
READY_TO_ACCEPT: { description: 'An offer has been made to the applicant. The acceptance requirements are no longer pending, the application is ready to be finalized.' },
WORKFLOW_NONBLOCKING: { description: 'The application has been offered and accepted and now there is a workflow process to audit the review AFTER marking the application status as eligible or ineligible. Requirements from non-blocking workflow states cannot affect the application status, but the application will not proceed to the complete phase until all workflow stages are non-PENDING.' },
Expand Down
2 changes: 2 additions & 0 deletions api/src/application/application.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export const statusVisibleToApplicantPhases = new Set<ApplicationPhase>([
ApplicationPhase.PREQUAL,
ApplicationPhase.QUALIFICATION,
ApplicationPhase.READY_TO_SUBMIT,
ApplicationPhase.REVIEW_COMPLETE,
ApplicationPhase.ACCEPTANCE,
ApplicationPhase.READY_TO_ACCEPT,
ApplicationPhase.WORKFLOW_NONBLOCKING,
Expand Down Expand Up @@ -97,6 +98,7 @@ export class ApplicationService extends AuthService<Application> {

maySeeFullStatus (application: Application) {
if (this.mayViewAsReviewer(application)) return true
if (application.appRequestPhase === AppRequestPhase.STARTED) return false // While the appRequest is still being filled out, prior to submission, an applicant must never see a decided eligibility status
return statusVisibleToApplicantPhases.has(application.phase)
}

Expand Down