Skip to content

Django admin forms enhancement#5565

Merged
jperson1 merged 38 commits into
mainfrom
django-admin-forms-enhancement
Apr 30, 2026
Merged

Django admin forms enhancement#5565
jperson1 merged 38 commits into
mainfrom
django-admin-forms-enhancement

Conversation

@annie-maria
Copy link
Copy Markdown
Contributor

@annie-maria annie-maria commented Apr 20, 2026

Related tickets

Description of changes

  • Created an admin panel for admins to be able to change the UEI, EIN and Auditee Name from the Admin Panel

How to test

  • Switch to this branch and run normally. Ensure migrations run either manually or via a fresh build.
  • To test changes acquire the current report id, one of UEI/ EIN/ Auditee Name that you're trying to change and go to Curation/ Edit Record within the Admin Panel to create a new form, fill in the Report ID and one of UEI/EIN/Auditee Name for the option you wish to change, set the drop down field_to_edit to the specific field you wish to edit, insert the replacement value in new value and press save.

Screenshots and recordings

Screenshot 2026-04-20 at 11 33 52 AM

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 20, 2026

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.

📝 Plan generated in Pull Request Checks #789

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 20, 2026

Terraform plan for dev

Plan: 3 to add, 5 to change, 3 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
!~  update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # module.dev.cloudfoundry_network_policy.app-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "app-network-policy" {
!~      policies = [
!~          {
!~              destination_app = "005b4594-00e4-4937-aa91-ccf1945a6121" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              destination_app = "005b4594-00e4-4937-aa91-ccf1945a6121" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
#            (1 unchanged element hidden)
        ]
    }

  # module.dev.cloudfoundry_network_policy.clamav-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav-network-policy" {
!~      policies = [
!~          {
!~              source_app      = "005b4594-00e4-4937-aa91-ccf1945a6121" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              source_app      = "726a907a-c6db-434a-b381-b0ae13f13ba3" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
        ]
    }

  # module.dev.cloudfoundry_network_policy.scanner-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "scanner-network-policy" {
!~      policies = [
!~          {
!~              destination_app = "726a907a-c6db-434a-b381-b0ae13f13ba3" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
#            (1 unchanged element hidden)
        ]
    }

  # module.dev.module.clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2025-12-02T19:51:18Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:3946ec9031115cdbfd6c691b3a6b7a1b2b5f8a7118b5a9f5229f8d6cdf6a68f6" -> "ghcr.io/gsa-tts/fac/clamav@sha256:f0704318366bffa312db5c35eaf67487db579893d73866cf2b2d1be5213a7edc"
!~      enable_ssh                      = true -> (known after apply)
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-dev"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      routes                          = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-av-dev.apps.internal" -> null
            },
        ] -> (known after apply)
+       service_bindings                = (known after apply) # forces replacement
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2026-04-15T21:31:42Z" -> (known after apply)
#        (8 unchanged attributes hidden)
    }

  # 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" = "2026-04-20T13:41:37Z" -> (known after apply)
        }
    }

  # module.dev.module.file_scanner_clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2025-12-02T19:51:18Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:3946ec9031115cdbfd6c691b3a6b7a1b2b5f8a7118b5a9f5229f8d6cdf6a68f6" -> "ghcr.io/gsa-tts/fac/clamav@sha256:f0704318366bffa312db5c35eaf67487db579893d73866cf2b2d1be5213a7edc"
!~      enable_ssh                      = false -> (known after apply)
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-dev-fs"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      routes                          = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-av-dev-fs.apps.internal" -> null
            },
        ] -> (known after apply)
+       service_bindings                = (known after apply) # forces replacement
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2025-12-02T19:51:25Z" -> (known after apply)
#        (8 unchanged attributes hidden)
    }

  # module.dev.module.clamav.module.route.cloudfoundry_route.app_route will be updated in-place
!~  resource "cloudfoundry_route" "app_route" {
!~      destinations = [
-           {
-               app_id           = "005b4594-00e4-4937-aa91-ccf1945a6121" -> null
-               app_process_type = "web" -> null
-               id               = "173e81b5-1dbc-4da2-a583-80438b6f3688" -> null
-               port             = 8080 -> null
-               protocol         = "http1" -> null
            },
+           {
+               app_id           = (known after apply)
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
        id           = "877bbc1f-e036-4a96-b7a3-70cff8c35c3c"
!~      updated_at   = "2025-12-02T19:51:25Z" -> (known after apply)
#        (6 unchanged attributes hidden)
    }

  # module.dev.module.file_scanner_clamav.module.route.cloudfoundry_route.app_route will be updated in-place
!~  resource "cloudfoundry_route" "app_route" {
!~      destinations = [
-           {
-               app_id           = "726a907a-c6db-434a-b381-b0ae13f13ba3" -> null
-               app_process_type = "web" -> null
-               id               = "ef9dee11-fd3f-4689-ab03-bb893df823c0" -> null
-               port             = 8080 -> null
-               protocol         = "http1" -> null
            },
+           {
+               app_id           = (known after apply)
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
        id           = "bb0e5888-0624-4d89-beb3-4ad305579743"
!~      updated_at   = "2026-04-09T15:50:26Z" -> (known after apply)
#        (6 unchanged attributes hidden)
    }

Plan: 3 to add, 5 to change, 3 to destroy.

📝 Plan generated in Pull Request Checks #789

daryll
daryll previously approved these changes Apr 28, 2026
Copy link
Copy Markdown
Contributor

@daryll daryll left a comment

Choose a reason for hiding this comment

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

lgtm!

@github-actions
Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Health
. 100% 100%
api 98% 86%
api.serializers 97% 88%
api.views 91% 96%
audit 95% 80%
audit.cross_validation 97% 86%
audit.fixtures 84% 50%
audit.formlib 92% 62%
audit.intakelib 89% 83%
audit.intakelib.checks 92% 86%
audit.intakelib.common 98% 82%
audit.intakelib.transforms 100% 95%
audit.management.commands 78% 17%
audit.migrations 100% 100%
audit.models 91% 69%
audit.templatetags 100% 100%
audit.test_viewlib 100% 100%
audit.views 75% 52%
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% 37%
curation 94% 86%
curation.curationlib 91% 71%
curation.management.commands 46% 34%
curation.migrations 100% 100%
dissemination 90% 70%
dissemination.analytics 27% 0%
dissemination.forms 80% 30%
dissemination.migrations 97% 25%
dissemination.models 100% 100%
dissemination.report_generation 21% 0%
dissemination.report_generation.excel 32% 0%
dissemination.searchlib 61% 44%
dissemination.templatetags 52% 6%
dissemination.views 67% 47%
djangooidc 53% 38%
djangooidc.tests 100% 94%
report_submission 100% 96%
report_submission.migrations 100% 100%
report_submission.templatetags 74% 100%
report_submission.views 78% 61%
support 94% 75%
support.migrations 100% 100%
support.models 90% 50%
tools 98% 50%
users 95% 86%
users.fixtures 100% 83%
users.management 100% 100%
users.management.commands 100% 100%
users.migrations 100% 100%
Summary 88% (22521 / 25462) 69% (2741 / 3994)

Minimum allowed line rate is 85%

Copy link
Copy Markdown
Contributor

@daryll daryll left a comment

Choose a reason for hiding this comment

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

lgtm

@jperson1 jperson1 added this pull request to the merge queue Apr 30, 2026
Merged via the queue into main with commit d994839 Apr 30, 2026
17 checks passed
@jperson1 jperson1 deleted the django-admin-forms-enhancement branch April 30, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add EIN/UEI Change Command to the Admin Panel

3 participants