From ca9810d9c63747589c07cf5e3efb4c5ea0e7f2d9 Mon Sep 17 00:00:00 2001 From: Rachid Mrad Date: Thu, 23 Jan 2025 16:46:54 -0500 Subject: [PATCH] ui wip --- src/registrar/forms/portfolio.py | 54 +++---- .../django/forms/widgets/multiple_input.html | 2 +- .../portfolio_member_permissions.html | 18 +-- .../templates/portfolio_members_add_new.html | 133 +++++++++--------- 4 files changed, 101 insertions(+), 106 deletions(-) diff --git a/src/registrar/forms/portfolio.py b/src/registrar/forms/portfolio.py index 5c7c391e3..f18bb4f5c 100644 --- a/src/registrar/forms/portfolio.py +++ b/src/registrar/forms/portfolio.py @@ -125,8 +125,7 @@ class BasePortfolioMemberForm(forms.ModelForm): }, ) - domain_permission_member = forms.ChoiceField( - label=mark_safe(f"Select permission {required_star}"), # nosec + domain_permissions = forms.ChoiceField( choices=[ (UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS.value, "Viewer, limited"), (UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS.value, "Viewer, all"), @@ -138,8 +137,7 @@ class BasePortfolioMemberForm(forms.ModelForm): }, ) - domain_request_permission_member = forms.ChoiceField( - label=mark_safe(f"Select permission {required_star}"), # nosec + domain_request_permissions = forms.ChoiceField( choices=[ ("no_access", "No access"), (UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "Viewer"), @@ -153,8 +151,7 @@ class BasePortfolioMemberForm(forms.ModelForm): }, ) - member_permission_member = forms.ChoiceField( - label=mark_safe(f"Select permission {required_star}"), # nosec + member_permissions = forms.ChoiceField( choices=[ ("no_access", "No access"), (UserPortfolioPermissionChoices.VIEW_MEMBERS.value, "Viewer"), @@ -173,9 +170,9 @@ class BasePortfolioMemberForm(forms.ModelForm): ROLE_REQUIRED_FIELDS = { UserPortfolioRoleChoices.ORGANIZATION_ADMIN: [], UserPortfolioRoleChoices.ORGANIZATION_MEMBER: [ - "domain_permission_member", - "member_permission_member", - "domain_request_permission_member", + "domain_permissions", + "member_permissions", + "domain_request_permissions", ], } @@ -191,15 +188,22 @@ class BasePortfolioMemberForm(forms.ModelForm): Update field descriptions. """ super().__init__(*args, **kwargs) + # Adds a

description beneath each role option - self.fields["role"].descriptions = { - "organization_admin": UserPortfolioRoleChoices.get_role_description( - UserPortfolioRoleChoices.ORGANIZATION_ADMIN - ), - "organization_member": UserPortfolioRoleChoices.get_role_description( - UserPortfolioRoleChoices.ORGANIZATION_MEMBER - ), + # self.fields["role"].descriptions = { + # "organization_admin": UserPortfolioRoleChoices.get_role_description( + # UserPortfolioRoleChoices.ORGANIZATION_ADMIN + # ), + # "organization_member": UserPortfolioRoleChoices.get_role_description( + # UserPortfolioRoleChoices.ORGANIZATION_MEMBER + # ), + # } + + self.fields["domain_permissions"].descriptions = { + UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS.value: "test1", + UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS.value: "test2", } + # Map model instance values to custom form fields if self.instance: self.map_instance_to_initial() @@ -223,12 +227,12 @@ class BasePortfolioMemberForm(forms.ModelForm): self.add_error(field_name, self.fields.get(field_name).error_messages.get("required")) # Edgecase: Member uses a special form value for None called "no_access". - if cleaned_data.get("domain_request_permission_member") == "no_access": - cleaned_data["domain_request_permission_member"] = None + if cleaned_data.get("domain_request_permissions") == "no_access": + cleaned_data["domain_request_permissions"] = None # Edgecase: Member uses a special form value for None called "no_access". - if cleaned_data.get("member_permission_member") == "no_access": - cleaned_data["member_permission_member"] = None + if cleaned_data.get("member_permissions") == "no_access": + cleaned_data["member_permissions"] = None # Handle roles cleaned_data["roles"] = [role] @@ -258,7 +262,7 @@ class BasePortfolioMemberForm(forms.ModelForm): "role": "organization_admin" or "organization_member", "member_permission_admin": permission level if admin, "domain_request_permission_admin": permission level if admin, - "domain_request_permission_member": permission level if member + "domain_request_permissions": permission level if member } """ if self.initial is None: @@ -296,9 +300,9 @@ class BasePortfolioMemberForm(forms.ModelForm): 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_permission_member"] = selected_domain_request_permission - self.initial["domain_permission_member"] = selected_domain_permission - self.initial["member_permission_member"] = selected_member_permission + self.initial["domain_request_permissions"] = selected_domain_request_permission + self.initial["domain_permissions"] = selected_domain_permission + self.initial["member_permissions"] = selected_member_permission class PortfolioMemberForm(BasePortfolioMemberForm): @@ -327,7 +331,7 @@ class PortfolioNewMemberForm(BasePortfolioMemberForm): """ email = forms.EmailField( - label="Enter the email of the member you'd like to invite", + label="Email", max_length=None, error_messages={ "invalid": ("Enter an email address in the required format, like name@example.com."), diff --git a/src/registrar/templates/django/forms/widgets/multiple_input.html b/src/registrar/templates/django/forms/widgets/multiple_input.html index cc0e11989..af98e898b 100644 --- a/src/registrar/templates/django/forms/widgets/multiple_input.html +++ b/src/registrar/templates/django/forms/widgets/multiple_input.html @@ -21,7 +21,7 @@ {% if field and field.field and field.field.descriptions %} {% with description=field.field.descriptions|get_dict_value:option.value %} {% if description %} -

{{ description }}

+

{{ description }}

{% endif %} {% endwith %} {% endif %} diff --git a/src/registrar/templates/portfolio_member_permissions.html b/src/registrar/templates/portfolio_member_permissions.html index 2b0a7a118..19f4ad41d 100644 --- a/src/registrar/templates/portfolio_member_permissions.html +++ b/src/registrar/templates/portfolio_member_permissions.html @@ -99,25 +99,19 @@

Basic member permissions

Member permissions available for basic-level acccess.

-

Domains

+

Domains

{% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" %} - {% input_with_errors form.domain_permission_member %} + {% input_with_errors form.domain_permissions %} {% endwith %} -

Domain requests

+

Domain requests

{% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" %} - {% input_with_errors form.domain_request_permission_member %} + {% input_with_errors form.domain_request_permissions %} {% endwith %} -

Organization members

+

Organization members

{% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" %} - {% input_with_errors form.member_permission_member %} + {% input_with_errors form.member_permissions %} {% endwith %} diff --git a/src/registrar/templates/portfolio_members_add_new.html b/src/registrar/templates/portfolio_members_add_new.html index 0587dfdbb..a0a6839e9 100644 --- a/src/registrar/templates/portfolio_members_add_new.html +++ b/src/registrar/templates/portfolio_members_add_new.html @@ -30,90 +30,87 @@ - {% block new_member_header %}

Add a new member

- {% endblock new_member_header %} + +

After adding a new member, an email invitation will be sent to that user with instructions on how to set up an account. All members must keep their contact information updated and be responsive if contacted by the .gov team.

{% include "includes/required_fields.html" %}
+ {% csrf_token %} -
- -

Email

-
- - {% csrf_token %} +
+ +

Who would you like to add to the organization?

+
+ {% with group_classes="usa-form-editable usa-form-editable--no-border padding-top-0" %} {% input_with_errors form.email %} {% endwith %} -
+
- -
- -

Member Access

-
+ +
+ +

What level of access would you like to grant this member?

+
- Select the level of access for this member. * +

Select one *

- {% with add_class="usa-radio__input--tile" add_legend_class="usa-sr-only" %} - {% input_with_errors form.role %} - {% endwith %} - -
- - -
-
- - -
-

Basic member permissions

-

Member permissions available for basic-level acccess.

- -

Domains

- {% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" %} - {% input_with_errors form.domain_permission_member %} + {% with add_class="usa-radio__input--tile" add_legend_class="usa-sr-only" %} + {% input_with_errors form.role %} {% endwith %} +
-

Domain requests

- {% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" %} - {% input_with_errors form.domain_request_permission_member %} - {% endwith %} + +
+
-

Organization members

- {% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" %} - {% input_with_errors form.member_permission_member %} - {% endwith %} - + +
+

What permissions do you want to add?

+

Configure the permissions for this member. Basic members cannot manage member permissions or organization metadata.

+ +

Domains *

+ {% with group_classes="usa-form-editable bg-gray-1 border-top-0 margin-top-0 border-bottom padding-top-0" add_legend_class="usa-sr-only" %} + {% input_with_errors form.domain_permissions %} + {% endwith %} + +

Domain requests *

+ {% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" add_legend_class="usa-sr-only" %} + {% input_with_errors form.domain_request_permissions %} + {% endwith %} + +

Organization members *

+ {% with group_classes="usa-form-editable usa-form-editable--no-border bg-gray-1 padding-top-0" add_legend_class="usa-sr-only" %} + {% input_with_errors form.member_permissions %} + {% endwith %} +
+ +

Domain management

+ +

After you invite this person to your organization, you can assign domain management permissions on their member profile.

+ + +
+ Cancel + + + +
- -
- Cancel - - - -