From 00289f50811895d915cde424e120e6b4a8be78f0 Mon Sep 17 00:00:00 2001 From: matthewswspence Date: Thu, 27 Mar 2025 12:19:01 -0500 Subject: [PATCH] admin page fixes --- src/registrar/admin.py | 65 +++++++++++++---------- src/registrar/tests/test_views_request.py | 1 - 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/src/registrar/admin.py b/src/registrar/admin.py index 4fb0dfb37..078e80770 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -3057,36 +3057,45 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportRegistrarModelAdmin): def get_fieldsets(self, request, obj=None): fieldsets = super().get_fieldsets(request, obj) + excluded_fields = set() + feb_fields = [ + "feb_naming_requirements_details", + "feb_purpose_choice", + "time_frame_details", + "interagency_initiative_details", + "eop_stakeholder_first_name", + "eop_stakeholder_last_name", + ] + + org_fields = [ + "portfolio", + "sub_organization", + "requested_suborganization", + "suborganization_city", + "suborganization_state_territory", + ] + + org_flag = flag_is_active_for_user(request.user, "organization_requests") + # Hide FEB fields for non-FEB requests + if not (obj and obj.portfolio and obj.is_feb()): + logger.debug(f"obj: {obj}") + logger.debug(f"obj.portfolio: {obj.portfolio}") + logger.debug(f"obj.is_feb(): {obj.is_feb()}") + logger.debug(f"feb breakdown: {obj.portfolio.federal_type}") + excluded_fields.update(feb_fields) + # Hide certain portfolio and suborg fields behind the organization requests flag # if it is not enabled - if not flag_is_active_for_user(request.user, "organization_requests"): - excluded_fields = [ - "portfolio", - "sub_organization", - "requested_suborganization", - "suborganization_city", - "suborganization_state_territory", - ] - # Hide FEB fields behind the organization requests flag - # and only show them if the portfolio is executive - if not (obj and obj.portfolio and obj.portfolio.federal_type == BranchChoices.EXECUTIVE): - excluded_fields.extend( - [ - "feb_naming_requirements_details", - "feb_purpose_choice", - "time_frame_details", - "interagency_initiative_details", - "eop_stakeholder_first_name", - "eop_stakeholder_last_name", - ] - ) - modified_fieldsets = [] - for name, data in fieldsets: - fields = data.get("fields", []) - fields = tuple(field for field in fields if field not in excluded_fields) - modified_fieldsets.append((name, {**data, "fields": fields})) - return modified_fieldsets - return fieldsets + if not org_flag: + excluded_fields.update(org_fields) + excluded_fields.update(feb_fields) + + modified_fieldsets = [] + for name, data in fieldsets: + fields = data.get("fields", []) + fields = tuple(field for field in fields if field not in excluded_fields) + modified_fieldsets.append((name, {**data, "fields": fields})) + return modified_fieldsets # Trigger action when a fieldset is changed def save_model(self, request, obj, form, change): diff --git a/src/registrar/tests/test_views_request.py b/src/registrar/tests/test_views_request.py index da021491d..6ede713d6 100644 --- a/src/registrar/tests/test_views_request.py +++ b/src/registrar/tests/test_views_request.py @@ -2719,7 +2719,6 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertContains(additional_details_page, "eop-contact-container") self.assertContains(additional_details_page, "additional_details-first_name") self.assertContains(additional_details_page, "additional_details-last_name") - self.assertContains(additional_details_page, "additional_details-email") # Make sure the additional details form is present self.assertContains(additional_details_page, "additional_details-has_anything_else_text")