GSA-TTS / FAC

GSA's Federal Audit Clearinghouse
Other
20 stars 5 forks source link

Combined View - Compare Award References by Value, Not String #4454

Closed jperson1 closed 1 week ago

jperson1 commented 1 week ago

Combined View - Compare Award References by Value, Not String

Issue: https://github.com/GSA-TTS/FAC/issues/4451

Inspired by ZD ticket 5410.

The user above noted a search discrepancy when searching for records with findings. We discovered that missing records were submitted with differing version of workbooks. This meant that some data, like FederalAwards, had award references with four digits (AWARD-0001), and other data, like Findings, had award references with five digits (AWARD-00001). Then, the materialized Combined view would omit these records, since 0001 != 00001.

To resolve the issue quickly, we instead compare the right side of the award reference, casted to an integer. Then, AWARD-0001 = 1 = AWARD-00001.

Long term, we should consider curation to convert all award references to the five digit value. This would also be picked up naturally by a regeneration of the dissemination tables. So maybe, maybe not.

Changes:

When generating the Combined materialized view, left join a finding if the award reference integer is the same, not just if the full string is equivalent.

How to test:

Create the error locally:

  1. In the dissemination_findings table, convert all the findings for a record to have five digits.
  2. Run main normally.
  3. Regenerate the MV via python manage.py materialized_views --create.
  4. Verify that the edited record does not come back in an advanced search with "Any findings" checked off.

Resolve the error and verify:

  1. Switch to this branch and run normally.
  2. Regenerate the MV as above.
  3. Verify that the edited record does come back with the same search as above.

PR Checklist: Submitter

PR Checklist: Reviewer

The larger the PR, the stricter we should be about these points.

Pre Merge Checklist: Merger

github-actions[bot] commented 1 week ago

Terraform plan for meta

No changes. Your infrastructure matches the configuration. ``` No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed. ```

:white_check_mark: Plan applied in Deploy to Development and Management Environment #859

github-actions[bot] commented 1 week ago

Terraform plan for dev

Plan: 1 to add, 0 to change, 1 to destroy. ```diff Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: -/+ destroy and then create replacement Terraform will perform the following actions: # module.dev.module.cors.null_resource.cors_header must be replaced -/+ resource "null_resource" "cors_header" { !~ id = "*******************" -> (known after apply) !~ triggers = { # forces replacement !~ "always_run" = "2024-11-12T18:13:24Z" -> (known after apply) } } Plan: 1 to add, 0 to change, 1 to destroy. ```

:white_check_mark: Plan applied in Deploy to Development and Management Environment #859

github-actions[bot] commented 1 week ago

Code Coverage

Package Line Rate Branch Rate Health
. 100% 100%
api 98% 90%
audit 97% 87%
audit.cross_validation 98% 86%
audit.fixtures 84% 50%
audit.intakelib 90% 81%
audit.intakelib.checks 92% 85%
audit.intakelib.common 98% 82%
audit.intakelib.transforms 100% 94%
audit.management.commands 78% 17%
audit.migrations 100% 100%
audit.models 93% 75%
audit.templatetags 100% 100%
audit.views 61% 40%
census_historical_migration 96% 65%
census_historical_migration.migrations 100% 100%
census_historical_migration.sac_general_lib 92% 84%
census_historical_migration.transforms 95% 90%
census_historical_migration.workbooklib 68% 69%
config 78% 17%
curation 100% 100%
curation.curationlib 57% 100%
curation.migrations 100% 100%
dissemination 91% 72%
dissemination.migrations 97% 25%
dissemination.searchlib 74% 64%
dissemination.templatetags 100% 100%
djangooidc 53% 38%
djangooidc.tests 100% 94%
report_submission 93% 88%
report_submission.migrations 100% 100%
report_submission.templatetags 74% 100%
support 95% 78%
support.management.commands 96% 100%
support.migrations 100% 100%
support.models 97% 83%
tools 98% 50%
users 98% 100%
users.fixtures 100% 83%
users.management 100% 100%
users.management.commands 100% 100%
users.migrations 100% 100%
Summary 91% (17131 / 18906) 77% (2115 / 2764)