Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(grants): Forecasted UI - - MERGE AFTER PR # 3456 #3346

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

masimons
Copy link
Contributor

@masimons masimons commented Aug 6, 2024

Blocked from merging

Blocked by - #3456 - Hide forecasted grants while UI is being developed to support forecasted grants


Ticket #2201

Note

I tried adding tests, but the setup is missing for being able to do a full render - may need to wait until we upgrade ViTest.

See slack thread for more details

Description

UI changes that display forecasted grant data. The bulk of these changes touch the grants table, and the grants detail page.

To run this...

  1. Checkout branch
git checkout lsr-forecasted-ui-seeds
  1. run seed command to populate the db with forecasted grants
docker compose exec app yarn db:seed
  1. switch back to this branch
git checkout ms-forecasted-ui

Screenshots / Demo Video

Grants table with forecasted and posted grants

grants table with forecasted grants

csv output

csv output

grant detail - both dates valid

grant detail - forecasted - both dates valid

grant detail - with close_date_explanation

grant detail - forecasted - close_date_explanation

grant detail - both dates = null

grant deatil - not yet issued

sorting on close date

Manually changed data - see

  • est. 9/6/2025
  • 10/28/2025

image

image

Filtering

Posted only

image

Forecasted only

image

Testing

Automated and Unit Tests

  • Added Unit tests

Manual tests for Reviewer

  • Added steps to test feature/functionality manually

Checklist

  • Provided ticket and description
  • Provided screenshots/demo
  • Provided testing information
  • Provided adequate test coverage for all new code
  • Added PR reviewers

@github-actions github-actions bot added the javascript Pull requests that update Javascript code label Aug 6, 2024
@masimons masimons mentioned this pull request Aug 6, 2024
@usdigitalresponse usdigitalresponse deleted a comment from github-actions bot Aug 9, 2024
@usdigitalresponse usdigitalresponse deleted a comment from github-actions bot Aug 9, 2024
@masimons
Copy link
Contributor Author

masimons commented Aug 9, 2024

@TylerHendrickson would you mind taking a look at this draft PR to make sure I'm on the right track as far as implementation goes for this ticket

Copy link
Member

@TylerHendrickson TylerHendrickson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TylerHendrickson would you mind taking a look at this draft PR to make sure I'm on the right track as far as implementation goes for this ticket

@masimons Left a few notes for clarification / consideration, but I think overall this is on the right track!

Comment on lines 390 to 393
} if (this.currentGrant.opportunity_status === 'forecasted') { // what if we check for posted status as well?
if (!this.currentGrant.close_date) {
return this.currentGrant.close_date_explanation ? this.currentGrant.close_date_explanation : 'Not yet issued';
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this check would also be useful for posted status.

I think this is already on your radar, but just calling out for posterity that this (undesired) fallback behavior would need to be addressed in order to have potentially-null close_date values.

Comment on lines 65 to 67
// Note: in the knex query, we are deriving the status based on
// archive_date and close_date. Probably we just want to pass
// the opportunity_status to the frontend, and not re-derive it here?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlike the transition from forecasted to non-forecasted, there's (currently) no explicit grants-ingest event that we expect to receive that would allow us to store a new materialized value for the grant being closed or archived. In other words, to determine whether a grant is forecasted or fully published, we have these options:

  • Check is_forecasted / some value that signifies whether the upstream record was sourced only from forecasted data
  • Check whether post_date is in the future

However, the post_date may well be the last time we ever see an event from grants-ingest for a particular grant, so the status of being closed or archived need to be derived from a check like

if (close_date <= today) {
  if (archive_date > today) {
    status = 'closed';
  } else {
    status = 'archived';
  }
}

(Hopefully that's useful and I'm not misunderstanding the question!)

Copy link

github-actions bot commented Sep 14, 2024

QA Summary

QA Check Result
🌐 Client Tests
🔗 Server Tests
🤝 E2E Tests
📏 ESLint
🧹 TFLint

Test Coverage

Coverage report for `packages/client`
St File % Stmts % Branch % Funcs % Lines Uncovered Line #s
🔴 All files 35.96 34.21 32.69 37.53
🔴  src 0 100 100 0
🔴   App.vue 0 100 100 0 2-9
🔴  src/arpa_reporter 0 100 100 0
🔴   App.vue 0 100 100 0 2-13
🟡  ...ter/components 58.58 48 46.8 59.78
🟡   AlertBox.vue 80 75 50 80 13
🔴   ...oadButton.vue 20 0 0 20 2-7,38-67
🟢   ...ileButton.vue 100 100 100 100
🟢   ...ttonSmall.vue 100 100 100 100
🟢   ...mplateBtn.vue 100 100 100 100
🟡   ...avigation.vue 67.74 63.63 52.63 67.74 ...13-219,228-235
🔴   StandardForm.vue 45 50 41.66 45.45 ...24-128,135-157
🟢  ...porter/helpers 84.61 79.48 87.5 84.61
🟢   form-helpers.js 84.21 79.48 85.71 84.21 7,16,25,81-83
🟢   short-uuid.js 100 100 100 100
🔴  ...eporter/router 0 0 0 0
🔴   index.js 0 0 0 0 20-131
🔴  ...reporter/store 3.92 0 2.17 4.12
🔴   index.js 3.92 0 2.17 4.12 11-14,32-261
🔴  ...reporter/views 40.98 25.13 41.37 42.91
🟢   AgenciesView.vue 100 0 100 100 16
🔴   AgencyView.vue 40.74 36.36 50 45.83 53-62,70-96
🔴   HomeView.vue 26.66 34.14 36.36 26.66 36-66,113,137-207
🔴   LoginView.vue 29.62 36.36 20 30.76 1,4,19-34,72-100
🔴   ...plateView.vue 27.02 35.71 45.45 25 ...2,30-37,69-113
🔴   ...ploadView.vue 24.24 16.66 33.33 26.66 1,30-31,116-144
🔴   ...eriodView.vue 48 18.18 75 52.17 64-90
🟡   ...riodsView.vue 57.57 28.57 60 59.37 101,132,149-171
🔴   ...pientView.vue 40 10.52 30.76 41.02 73-93,110-152
🔴   ...ientsView.vue 48.48 8.33 46.66 53.33 ...46,165-190,203
🟡   UploadView.vue 61.53 43.75 62.5 61.36 ...41-442,448-449
🔴   UploadsView.vue 16.66 0 0 18.18 59,110-287
🔴   UserView.vue 46.34 33.33 68.75 48.64 84,97-137
🟡   UsersView.vue 60 7.69 62.5 66.66 91-92,105-107,123
🔴   ...ationView.vue 37.03 18.18 26.66 41.66 ...19,238,246-270
🟡  src/components 55.55 44.17 57.24 56.29
🔴   ...vityTable.vue 18.75 0 28.57 19.35 115-185
🟡   BaseLayout.vue 69.56 53.84 60 69.56 172,219-231
🔴   CopyButton.vue 30 33.33 40 30 5,53-62
🟢   ...tActivity.vue 80.76 62.85 83.33 80.76 ...31-136,179,201
🟢   GrantNotes.vue 90 78.26 85 89.79 ...87,207,216-217
🔴   GrantsTable.vue 46.7 38.39 47.61 48.42 ...74-478,486-566
🔴   ...dUploader.vue 24.24 33.33 37.5 24.24 16,25,74-111
🔴   SearchFilter.vue 40.74 28 37.5 40 ...52,64,67,72-82
🔴   ShareGrant.vue 38.7 64.28 23.07 40 ...08-112,131-152
🟢   ...ivityItem.vue 96.15 90.9 100 96.15 64
🟡   UserAvatar.vue 70 75 100 62.5 35-37
🟢   ...eaderText.vue 100 100 100 100
🔴  ...ponents/Modals 29.21 44.34 33.1 32.94
🔴   ...anization.vue 17.39 65.62 30 22.22 1-14,149-178
🔴   AddTeam.vue 45.45 55.55 61.53 57.69 ...04,210,222-245
🔴   AddUser.vue 36.66 66.66 60 37.5 ...40,145,148-176
🔴   ...anization.vue 15.38 64.28 14.28 16.66 1-15,58-78
🔴   EditTeam.vue 18.18 26.43 33.33 20.83 ...29,208,216-301
🔴   EditUser.vue 21.05 66.66 25 22.22 1,101-128
🔴   ...ilsLegacy.vue 22.03 0 0 24.07 131,177,205-369
🟢   ...Followers.vue 83.33 88.88 57.14 83.33 10,114-115
🟡   ImportTeams.vue 50 41.17 50 53.33 28,64-69,81-82
🔴   ImportUsers.vue 42.85 60 40 46.15 29,65-80
🔴   ...archPanel.vue 27.9 15.78 23.52 28.57 ...68-178,211-255
🔴   SearchPanel.vue 21.62 63.26 32 27.58 ...78-381,387-459
🔴  src/helpers 19.46 18.86 20.93 20.27
🟢   constants.js 100 100 100 100
🟢   currency.js 100 100 100 100
🟡   dates.js 66.66 100 33.33 100
🔴   fetchApi.js 6 13.79 5.26 6.12 10-12,20-132
🔴   filters.js 4 0 0 4.54 19-51
🔴   form-helpers.js 5.88 3.03 14.28 5.88 8-82
🟡   gtag.js 77.77 90 75 77.77 12,51
🟢   testHelpers.js 100 100 100 100
🔴   ...patWarning.js 0 0 0 0 39-61
🟢  ...s/featureFlags 84.61 100 71.42 84.61
🟡   index.js 60 100 60 60 8,16
🟢   utils.js 100 100 100 100
🔴  src/mixin 20 0 28.57 20
🔴   ...zableTable.js 20 0 28.57 20 16-31,36-37,42
🔴  src/router 18.91 14.28 11.11 18.91
🔴   index.js 18.91 14.28 11.11 18.91 ...76-177,181-200
🟢  src/store 100 100 100 100
🟢   index.js 100 100 100 100
🔴  src/store/modules 2.82 0 4.48 2.94
🔴   agencies.js 5.26 100 8.33 5.55 13-70
🔴   alerts.js 20 100 20 20 10-24
🔴   grants.js 0.99 0 0.97 1.03 61-456
🔴   organization.js 33.33 100 33.33 33.33 21-25
🔴   roles.js 20 100 20 25 13-22
🔴   tenants.js 11.11 100 14.28 12.5 13-32
🔴   users.js 2.43 0 4.76 2.5 17-100
🔴  src/views 43.63 34.18 33.11 45.33
🔴   ...orterView.vue 25.58 51.85 18.18 26.82 ...,62,84,109-151
🟡   ...boardView.vue 50 17.64 50 52 89-98,114-125
🔴   ...tailsView.vue 30.76 11.11 15.9 31.37 ...19-458,464-485
🟢   GrantsView.vue 100 100 100 100
🟡   LoginView.vue 56 38.88 44.44 58.33 23,137-159
🟡   MyGrantsView.vue 77.77 66.66 66.66 77.77 1,69
🟡   ...ofileView.vue 78.26 80 42.85 78.26 1,32,63,136-140
🟢   NotFoundView.vue 100 100 100 100
🔴   ...tionsView.vue 47.05 57.14 41.66 53.33 ...97-100,114-118
🔴   ...ivityView.vue 46.42 23.8 43.75 46.42 ...01,114,120-134
🔴   TeamsView.vue 44.44 88.88 41.66 53.33 1,58,142,156-163
🟡   UsersView.vue 50 66.66 36.36 53.84 ...16-121,133-139
Coverage report for `packages/server`
St File % Stmts % Branch % Funcs % Lines Uncovered Line #s
🟡 All files 59.98 53.2 55.88 60.08
🟢  src 81.81 0 50 81.81
🟢   configure.js 81.81 0 50 81.81 47-54,83-85
🟢  src/arpa_reporter 100 71.42 100 100
🟢   configure.js 100 33.33 100 100 34-41
🟢   environment.js 100 100 100 100
🟢   use-request.js 100 100 100 100
🟡  src/arpa_reporter/db 50.73 45.88 50 51.9
🟡   arpa-subrecipients.js 53.19 50 38.46 54.54 23-60,101,113-122
🔴   reporting-periods.js 37.2 46.87 40 38.09 46,77-156
🟢   settings.js 100 83.33 100 100 13
🟡   uploads.js 50 28.57 52.38 51.42 18-29,84,99-124,141-150
🔴  src/arpa_reporter/lib 29.57 33.08 34.56 28.46
🟢   arpa-ec-codes.js 100 100 100 100
🔴   audit-report.js 21.44 19.35 24.19 21.32 ...28-529,554-684,732-758
🟡   ensure-async-context.js 75 100 50 100
🟢   format.js 90.62 90 90 91.3 41-42
🟡   log.js 75 50 50 75 13,25
🟡   preconditions.js 66.66 33.33 100 66.66 3
🔴   spreadsheet.js 9.09 0 0 9.09 15-32
🟢   validation-error.js 85.71 100 50 85.71 16
🔴  src/arpa_reporter/routes 40 14.92 14.28 40.6
🔴   agencies.js 22.58 0 0 23.33 13-21,26-53
🟡   application_settings.js 75 100 0 75 10-11
🟡   audit-report.js 68.91 58.33 100 68.91 57-58,64-78,100-116
🟢   exports.js 81.42 83.33 100 81.42 61-75,98-99
🔴   reporting-periods.js 20 0 0 20.43 ...25-137,143-149,154-180
🔴   subrecipients.js 23.8 0 0 23.8 12-13,17-27,31-48,52-63
🔴   uploads.js 28.28 7.89 9.09 29.16 ...33-154,164-166,173-180
🔴   users.js 19.6 0 0 20 15-35,39-44,48-81
🔴  src/arpa_reporter/services 44.55 34.79 47.55 44.83
🔴   generate-arpa-report.js 36.86 2.77 50 37.24 ...-975,984-997,1071-1138
🔴   get-template.js 21.62 0 0 21.62 18-79
🟡   persist-upload.js 69.66 90 73.07 69.76 ...64-206,227-241,279-301
🔴   records.js 20.75 0 11.11 21.15 38-204,221-276
🔴   revalidate-uploads.js 37.5 100 0 37.5 5-14
🔴   validate-upload.js 43.56 58.51 37.03 44.2 ...52,371,393,411-688,703
🟢   validation-rules.js 98.18 90 90.9 100 157,173
🟡  src/db 74.26 71.42 68.42 74.29
🟢   connection.js 100 50 100 100 6
🟢   constants.js 100 100 100 100
🟡   helpers.js 75 83.33 50 75 5,21-22
🟢   index.js 82.4 78.54 82.08 82.35 ...60-1426,1608-1609,1616
🟢   saved_search_migration.js 92 88.23 71.42 93.61 5,69,134
🔴   tenant_creation.js 10.58 2.7 0 11.11 15-40,[...[Comment body truncated]

Copy link

github-actions bot commented Sep 14, 2024

Terraform Summary

Step Result
🖌 Terraform Format & Style
⚙️ Terraform Initialization
🤖 Terraform Validation
📖 Terraform Plan

Hint: If "Terraform Format & Style" failed, run terraform fmt -recursive from the terraform/ directory and commit the results.

Output

Validation Output
stdout:
Success! The configuration is valid.


-------------------------------------
stderr:

Plan Summary
CHANGE RESOURCE
add module.website.aws_s3_object.origin_dist_artifact["assets/ActivityTable-DTd2sFX0.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/ActivityTable-DTd2sFX0.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/ArpaAnnualPerformanceReporterView-CDdDTksC.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/ArpaAnnualPerformanceReporterView-CDdDTksC.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/DashboardView-VbGRzX3e.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/DashboardView-VbGRzX3e.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsLegacy-C2h8z-xe.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsLegacy-C2h8z-xe.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsView-eUgchTrA.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsView-eUgchTrA.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsTable-n99J0E7O.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsTable-n99J0E7O.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsView-9aP5TJw5.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsView-9aP5TJw5.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyGrantsView-BMuhZRca.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyGrantsView-BMuhZRca.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyProfileView-C7-yOXU3.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyProfileView-C7-yOXU3.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/NotFoundView-DG0C-4Kw.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/NotFoundView-DG0C-4Kw.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/OrganizationsView-BIG2xpXz.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/OrganizationsView-BIG2xpXz.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecentActivityView-C84QOTeO.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecentActivityView-C84QOTeO.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecordUploader-C9DgaHrg.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecordUploader-C9DgaHrg.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/TeamsView-WvrDPAaQ.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/TeamsView-WvrDPAaQ.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/UsersView-DDn_Y9rb.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/UsersView-DDn_Y9rb.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/arpa_reporter-BDVWdOGe.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/arpa_reporter-BDVWdOGe.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/form-helpers-BmCDRMDS.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/form-helpers-BmCDRMDS.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/main-BgXz8IvV.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/main-BgXz8IvV.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/style-Cjl3lQxh.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/style-Cjl3lQxh.js.map"]
update module.api.aws_ecs_service.default[0]
module.api.module.grant_digest_scheduled_task.aws_iam_role_policy.default[0]
module.api.module.grant_digest_scheduled_task.aws_scheduler_schedule.default[0]
module.arpa_audit_report.aws_ecs_service.default
module.arpa_treasury_report.aws_ecs_service.default
module.consume_grants.aws_ecs_service.default
module.website.aws_s3_object.deploy-config[0]
module.website.aws_s3_object.origin_dist_artifact["arpa_reporter/index.html"]
module.website.aws_s3_object.origin_dist_artifact["index.html"]
recreate module.api.aws_ecs_task_definition.default[0]
module.arpa_audit_report.aws_ecs_task_definition.consumer
module.arpa_treasury_report.aws_ecs_task_definition.consumer
module.consume_grants.aws_ecs_task_definition.consume_grants
delete module.website.aws_s3_object.origin_dist_artifact["assets/ActivityTable-YqgOOPXw.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/ActivityTable-YqgOOPXw.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/ArpaAnnualPerformanceReporterView-DKVm08Xg.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/ArpaAnnualPerformanceReporterView-DKVm08Xg.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/DashboardView-VsspTFBS.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/DashboardView-VsspTFBS.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsLegacy-CVlel6Ry.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsLegacy-CVlel6Ry.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsView-DJGnKTa1.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantDetailsView-DJGnKTa1.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsTable-jhzN9SPv.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsTable-jhzN9SPv.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsView-BrsJtfrf.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/GrantsView-BrsJtfrf.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyGrantsView-BjfVdyV4.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyGrantsView-BjfVdyV4.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyProfileView-B3fT5aIb.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/MyProfileView-B3fT5aIb.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/NotFoundView-BNQmXSgE.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/NotFoundView-BNQmXSgE.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/OrganizationsView-D-fJvjQ_.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/OrganizationsView-D-fJvjQ_.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecentActivityView-C0M1DIV9.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecentActivityView-C0M1DIV9.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecordUploader-BabAXXQR.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/RecordUploader-BabAXXQR.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/TeamsView-LLkFMdO8.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/TeamsView-LLkFMdO8.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/UsersView-CQQQ-iaa.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/UsersView-CQQQ-iaa.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/arpa_reporter-B11UrlnO.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/arpa_reporter-B11UrlnO.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/form-helpers-k5gBX_5e.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/form-helpers-k5gBX_5e.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/main-DxZvaAMs.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/main-DxZvaAMs.js.map"]
module.website.aws_s3_object.origin_dist_artifact["assets/style-Lb7S2aAW.js"]
module.website.aws_s3_object.origin_dist_artifact["assets/style-Lb7S2aAW.js.map"]

Pusher: @lsr-explore, Action: pull_request_target, Workflow: Continuous Integration

@@ -219,7 +219,7 @@ import GrantActivity from '@/components/GrantActivity.vue';

const HEADER = '__HEADER__';
const FAR_FUTURE_CLOSE_DATE = '2100-01-01';
const NOT_AVAILABLE_TEXT = 'Not available';
const NOT_AVAILABLE_TEXT = 'Not Available';
Copy link
Contributor

@lsr-explore lsr-explore Oct 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved - fix is in this PR

Should this be "Not yet issued"?

Figma link

image


Fixed in this PR

image

@lsr-explore
Copy link
Contributor

lsr-explore commented Oct 16, 2024

Resolved - fix is in this PR

Seed data ticket specified including a record where open and close were both null

When open = null - table shows 1/1/1970
image

Detail view shows invalid datetime

image


Fixed in this PR

Table
image

image

@lsr-explore
Copy link
Contributor

lsr-explore commented Oct 16, 2024

Resolved - Fix is in this PR

Figma shows est in italics for Open/Close date

image

Figma

Detail
image


fix is in this PR

image

@lsr-explore lsr-explore force-pushed the ms-forecasted-ui branch 4 times, most recently from 17e2fdf to dd41ced Compare October 21, 2024 21:24
@lsr-explore lsr-explore changed the title Forecasted UI Forecasted UI - - MERGE AFTER PR # 3456 Oct 21, 2024
@lsr-explore lsr-explore changed the title Forecasted UI - - MERGE AFTER PR # 3456 feat(grants): Forecasted UI - - MERGE AFTER PR # 3456 Oct 21, 2024
])
.select(knex.raw(`
CASE
WHEN grants.archive_date <= now() THEN 'archived'
WHEN grants.close_date <= now() THEN 'closed'
WHEN grants.open_date > now() OR grants.opportunity_status = 'forecasted' THEN 'forecasted'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to reviewer: Additional check for open_date in case the status is not correctly populated in grants.gov

},
displayEstimatedOpenDateText() {
return this.currentGrant.open_date && this.currentGrant.opportunity_status === 'forecasted';
},
Copy link
Contributor

@lsr-explore lsr-explore Oct 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to reviewer: We do not want to display prefix "est." if the dates are null and the status is forecasted.

valid date - "est. 1/2/2056"
date = null - "not yet issued"

We need this as a separate flag because the requirement is to display "est." in italics.

@github-actions github-actions bot added the enhancement New feature or request label Oct 22, 2024
@lsr-explore lsr-explore self-requested a review October 22, 2024 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request javascript Pull requests that update Javascript code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants