diff --git a/src/registrar/assets/js/get-gov.js b/src/registrar/assets/js/get-gov.js index cca25bbfa..e6f1e3e6c 100644 --- a/src/registrar/assets/js/get-gov.js +++ b/src/registrar/assets/js/get-gov.js @@ -918,7 +918,8 @@ function setupUrbanizationToggle(stateTerritoryField) { * */ (function newMemberFormListener() { - HookupYesNoListener("new_member-permission_level",'new-member-admin-permissions', 'new-member-basic-permissions') + // HookupYesNoListener("new_member-permission_level",'new-member-admin-permissions', 'new-member-basic-permissions') + HookupYesNoListener("member_access_level",'new-member-admin-permissions', 'new-member-basic-permissions') })(); /** diff --git a/src/registrar/forms/portfolio.py b/src/registrar/forms/portfolio.py index b5c93ab59..c67586529 100644 --- a/src/registrar/forms/portfolio.py +++ b/src/registrar/forms/portfolio.py @@ -165,17 +165,32 @@ class PortfolioInvitedMemberForm(forms.ModelForm): class NewMemberForm(forms.ModelForm): + member_access_level = forms.ChoiceField( + label="Select permission", + choices=[("True", "Admin Access"), ("False", "Basic Access")], + widget=forms.RadioSelect(attrs={'class': 'usa-radio__input usa-radio__input--tile'}), + required=True, + error_messages={ + "required": "Member access level is required", + }, + ) admin_org_domain_request_permissions = forms.ChoiceField( label="Select permission", choices=[("view_only", "View all requests"), ("view_and_create", "View all requests plus create requests")], widget=forms.RadioSelect, required=True, + error_messages={ + "required": "Domain request permission is required", + }, ) admin_org_members_permissions = forms.ChoiceField( label="Select permission", choices=[("view_only", "View all members"), ("view_and_create", "View all members plus manage members")], widget=forms.RadioSelect, required=True, + error_messages={ + "required": "Member permission is required", + }, ) basic_org_domain_request_permissions = forms.ChoiceField( label="Select permission", @@ -186,6 +201,9 @@ class NewMemberForm(forms.ModelForm): ], widget=forms.RadioSelect, required=True, + error_messages={ + "required": "Member permission is required", + }, ) email = forms.EmailField( @@ -223,4 +241,21 @@ class NewMemberForm(forms.ModelForm): # except User.DoesNotExist: # raise forms.ValidationError("User with this email does not exist.") + # Get the grade and sport from POST data + permission_level = cleaned_data.get("member_access_level") + # permission_level = self.data.get('new_member-permission_level') + if not permission_level: + for field in self.fields: + if field in self.errors and field != "email" and field != "member_access_level": + del self.errors[field] + return cleaned_data + + # Validate the sport based on the selected grade + if permission_level == "True": + #remove the error messages pertaining to basic permission inputs + del self.errors["basic_org_domain_request_permissions"] + else: + #remove the error messages pertaining to admin permission inputs + del self.errors["admin_org_domain_request_permissions"] + del self.errors["admin_org_members_permissions"] return cleaned_data diff --git a/src/registrar/templates/portfolio_members_add_new.html b/src/registrar/templates/portfolio_members_add_new.html index 67d3da3dd..3a390a470 100644 --- a/src/registrar/templates/portfolio_members_add_new.html +++ b/src/registrar/templates/portfolio_members_add_new.html @@ -56,22 +56,25 @@ Select the level of access for this member. * + + {% with group_classes="usa-form-editable usa-form-editable--no-border padding-top-0" %}
- - - - + {% for radio in form.member_access_level %} + {{ radio.tag }} + + {% endfor %}
+ {% endwith %} + @@ -86,7 +89,7 @@ {% input_with_errors form.admin_org_domain_request_permissions %} {% endwith %} -

Organization Members

+

Organization members

{% with group_classes="usa-form-editable usa-form-editable--no-border padding-top-0" %} {% input_with_errors form.admin_org_members_permissions %} {% endwith %} diff --git a/src/registrar/views/portfolios.py b/src/registrar/views/portfolios.py index 92e6f82a5..bd9a10dd8 100644 --- a/src/registrar/views/portfolios.py +++ b/src/registrar/views/portfolios.py @@ -401,7 +401,7 @@ class NewMemberView(PortfolioMembersPermissionView, FormMixin): return self.render_to_response(self.get_context_data(form=form)) def get_success_url(self): - """Redirect to the overview page for the portfolio.""" + """Redirect to members table.""" return reverse("members") ##########################################