diff --git a/src/registrar/forms/portfolio.py b/src/registrar/forms/portfolio.py index a8853d339..c9ef280b0 100644 --- a/src/registrar/forms/portfolio.py +++ b/src/registrar/forms/portfolio.py @@ -4,7 +4,6 @@ import logging from django import forms from django.core.validators import RegexValidator from django.core.validators import MaxLengthValidator -from django.utils.safestring import mark_safe from registrar.forms.utility.combobox import ComboboxWidget from registrar.models import ( @@ -143,7 +142,6 @@ class BasePortfolioMemberForm(forms.ModelForm): ("no_access", "No access"), (UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "Viewer"), (UserPortfolioPermissionChoices.EDIT_REQUESTS.value, "Creator"), - ], widget=forms.RadioSelect, required=False, @@ -166,7 +164,6 @@ class BasePortfolioMemberForm(forms.ModelForm): }, ) - # Tracks what form elements are required for a given role choice. # All of the fields included here have "required=False" by default as they are conditionally required. # see def clean() for more details. @@ -191,20 +188,22 @@ class BasePortfolioMemberForm(forms.ModelForm): Update field descriptions. """ super().__init__(*args, **kwargs) - + # Adds a

description beneath each option self.fields["domain_permissions"].descriptions = { UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS.value: "Can view only the domains they manage", UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS.value: "Can view all domains for the organization", } self.fields["domain_request_permissions"].descriptions = { - UserPortfolioPermissionChoices.EDIT_REQUESTS.value: "Can view all domain requests for the organization and create requests", + UserPortfolioPermissionChoices.EDIT_REQUESTS.value: ( + "Can view all domain requests for the organization and create requests" + ), UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value: "Can view all domain requests for the organization", - "no_access": "Cannot view or create domain requests" + "no_access": "Cannot view or create domain requests", } self.fields["member_permissions"].descriptions = { UserPortfolioPermissionChoices.VIEW_MEMBERS.value: "Can view all members permissions", - "no_access": "Cannot view member permissions" + "no_access": "Cannot view member permissions", } # Map model instance values to custom form fields @@ -299,9 +298,15 @@ class BasePortfolioMemberForm(forms.ModelForm): self.initial["role"] = selected_role is_member = selected_role == UserPortfolioRoleChoices.ORGANIZATION_MEMBER if is_member: - # Edgecase: Member and domain request use a special form value for None called "no_access". This ensures a form selection. - selected_domain_permission = next((perm for perm in domain_perms if perm in perms), UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS.value) - selected_domain_request_permission = next((perm for perm in domain_request_perms if perm in perms), "no_access") + # Edgecase: Member and domain request use a special form value for None called "no_access". + # This ensures a form selection. + selected_domain_permission = next( + (perm for perm in domain_perms if perm in perms), + UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS.value, + ) + selected_domain_request_permission = next( + (perm for perm in domain_request_perms if perm in perms), "no_access" + ) selected_member_permission = next((perm for perm in member_perms if perm in perms), "no_access") self.initial["domain_request_permissions"] = selected_domain_request_permission self.initial["domain_permissions"] = selected_domain_permission diff --git a/src/registrar/tests/test_forms.py b/src/registrar/tests/test_forms.py index 4279ca068..82e3b40bb 100644 --- a/src/registrar/tests/test_forms.py +++ b/src/registrar/tests/test_forms.py @@ -572,14 +572,18 @@ class TestBasePortfolioMemberForms(TestCase): form = self._assert_form_is_valid(PortfolioMemberForm, data, user_portfolio_permission) cleaned_data = form.cleaned_data self.assertEqual(cleaned_data["roles"], [UserPortfolioRoleChoices.ORGANIZATION_MEMBER.value]) - self.assertEqual(cleaned_data["domain_request_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value) + self.assertEqual( + cleaned_data["domain_request_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value + ) self.assertEqual(cleaned_data["domain_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS.value) self.assertEqual(cleaned_data["member_permissions"], UserPortfolioPermissionChoices.VIEW_MEMBERS.value) form = self._assert_form_is_valid(PortfolioInvitedMemberForm, data, portfolio_invitation) cleaned_data = form.cleaned_data self.assertEqual(cleaned_data["roles"], [UserPortfolioRoleChoices.ORGANIZATION_MEMBER.value]) - self.assertEqual(cleaned_data["domain_request_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value) + self.assertEqual( + cleaned_data["domain_request_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value + ) self.assertEqual(cleaned_data["domain_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS.value) self.assertEqual(cleaned_data["member_permissions"], UserPortfolioPermissionChoices.VIEW_MEMBERS.value) @@ -595,7 +599,9 @@ class TestBasePortfolioMemberForms(TestCase): form = self._assert_form_is_valid(PortfolioNewMemberForm, data) cleaned_data = form.cleaned_data self.assertEqual(cleaned_data["roles"], [UserPortfolioRoleChoices.ORGANIZATION_MEMBER.value]) - self.assertEqual(cleaned_data["domain_request_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value) + self.assertEqual( + cleaned_data["domain_request_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value + ) self.assertEqual(cleaned_data["domain_permissions"], UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS.value) self.assertEqual(cleaned_data["member_permissions"], UserPortfolioPermissionChoices.VIEW_MEMBERS.value) diff --git a/src/registrar/tests/test_reports.py b/src/registrar/tests/test_reports.py index 9d410e430..8e558d887 100644 --- a/src/registrar/tests/test_reports.py +++ b/src/registrar/tests/test_reports.py @@ -885,7 +885,7 @@ class MemberExportTest(MockDbForIndividualTests, MockEppLib): "big_lebowski@dude.co,False,help@get.gov,2022-04-01,Invalid date,None," "Viewer,True,1,cdomain1.gov\n" "cozy_staffuser@igorville.gov,True,help@get.gov,2022-04-01,2024-02-01," - "Viewer,Viewer,False,0,\n" + "Viewer Requester,Manager,False,0,\n" "icy_superuser@igorville.gov,True,help@get.gov,2022-04-01,2024-02-01," "Viewer Requester,Manager,False,0,\n" "meoward@rocks.com,False,big_lebowski@dude.co,2022-04-01,Invalid date,None," @@ -899,7 +899,7 @@ class MemberExportTest(MockDbForIndividualTests, MockEppLib): "nonexistentmember_4@igorville.gov,True,help@get.gov,Unretrieved,Invited," "Viewer Requester,Manager,False,0,\n" "nonexistentmember_5@igorville.gov,True,help@get.gov,Unretrieved,Invited," - "Viewer,Viewer,False,0,\n" + "Viewer Requester,Manager,False,0,\n" "tired_sleepy@igorville.gov,False,System,2022-04-01,Invalid date,Viewer," "None,False,0,\n" ) diff --git a/src/registrar/tests/test_views_portfolio.py b/src/registrar/tests/test_views_portfolio.py index 3ba228228..e6af20771 100644 --- a/src/registrar/tests/test_views_portfolio.py +++ b/src/registrar/tests/test_views_portfolio.py @@ -1422,7 +1422,7 @@ class TestPortfolio(WebTest): permission = UserPortfolioPermission.objects.get(user=self.user, portfolio=self.portfolio) # Update to basic member with view members permission - permission.roles=[UserPortfolioRoleChoices.ORGANIZATION_MEMBER] + permission.roles = [UserPortfolioRoleChoices.ORGANIZATION_MEMBER] permission.additional_permissions = [ UserPortfolioPermissionChoices.VIEW_MEMBERS, ] @@ -3564,14 +3564,10 @@ class TestEditPortfolioMemberView(WebTest): self.assertEqual(response.status_code, 200) self.assertEqual( response.context["form"].errors["domain_request_permissions"][0], - "Domain request permission is required", - ) - self.assertEqual( - response.context["form"].errors["member_permissions"][0], "Member permission is required" - ) - self.assertEqual( - response.context["form"].errors["domain_permissions"][0], "Domain permission is required" + "Domain request permission is required.", ) + self.assertEqual(response.context["form"].errors["member_permissions"][0], "Member permission is required.") + self.assertEqual(response.context["form"].errors["domain_permissions"][0], "Domain permission is required.") @less_console_noise_decorator @override_flag("organization_feature", active=True)