diff --git a/src/registrar/forms/portfolio.py b/src/registrar/forms/portfolio.py index 88ec8e3f7..936953686 100644 --- a/src/registrar/forms/portfolio.py +++ b/src/registrar/forms/portfolio.py @@ -70,27 +70,22 @@ class PortfolioOrgAddressForm(forms.ModelForm): class PortfolioSeniorOfficialForm(forms.ModelForm): - """Form for updating the portfolio senior official.""" + """ + Form for updating the portfolio senior official. + This form is readonly for now. + """ JOIN = "senior_official" + full_name = forms.CharField(label="Full name", required=False) class Meta: model = SeniorOfficial - # TODO - add full name fields = [ "first_name", "last_name", "title", "email", ] - - # error_messages = { - # "address_line1": {"required": "Enter the street address of your organization."}, - # "city": {"required": "Enter the city where your organization is located."}, - # "state_territory": { - # "required": "Select the state, territory, or military post where your organization is located." - # }, - # } widgets = { # We need to set the required attributed for State/territory # because for this fields we are creating an individual @@ -100,14 +95,17 @@ class PortfolioSeniorOfficialForm(forms.ModelForm): "last_name": forms.TextInput, "title": forms.TextInput, "email": forms.TextInput, + "full_name": forms.TextInput(attrs={"readonly": "readonly"}) } # the database fields have blank=True so ModelForm doesn't create # required fields by default. Use this list in __init__ to mark each # of these fields as required required = ["first_name", "last_name", "title", "email"] - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field_name in self.required: self.fields[field_name].required = True + + if self.instance: + self.fields["full_name"].initial = self.instance.get_formatted_name() diff --git a/src/registrar/templates/portfolio_senior_official.html b/src/registrar/templates/portfolio_senior_official.html index e22237ac4..9566736a0 100644 --- a/src/registrar/templates/portfolio_senior_official.html +++ b/src/registrar/templates/portfolio_senior_official.html @@ -23,9 +23,7 @@

Your senior official is a person within your organization who can authorize domain requests.

-

The senior official for your organization can’t be updated here. To suggest an update, email help@get.gov

- - {% if has_edit_org_portfolio_permission %} + {% if santa_exists %} {% include "includes/form_errors.html" with form=form %} {% include "includes/required_fields.html" %}
@@ -39,15 +37,20 @@
{% else %} -

Full name

-

- {{ portfolio.senior_official.get_formatted_name }} -

- {% if form.city.value is not None %} - {% include "includes/input_read_only.html" with field=form.title %} - {% endif %} - {% if form.state_territory.value is not None %} - {% include "includes/input_read_only.html" with field=form.email %} +

The senior official for your organization can’t be updated here. To suggest an update, email help@get.gov

+ + {% if not senior_official %} +

No senior official was found for this portfolio.

+ {% else %} + {% if form.full_name.value is not None %} + {% include "includes/input_read_only.html" with field=form.full_name %} + {% endif %} + {% if form.title.value is not None %} + {% include "includes/input_read_only.html" with field=form.title %} + {% endif %} + {% if form.email.value is not None %} + {% include "includes/input_read_only.html" with field=form.email %} + {% endif %} {% endif %} {% endif %} diff --git a/src/registrar/views/portfolios.py b/src/registrar/views/portfolios.py index 0903b2e58..3c851841a 100644 --- a/src/registrar/views/portfolios.py +++ b/src/registrar/views/portfolios.py @@ -48,7 +48,7 @@ class PortfolioOrganizationView(PortfolioBasePermissionView, FormMixin): def get_context_data(self, **kwargs): """Add additional context data to the template.""" context = super().get_context_data(**kwargs) - context["has_edit_org_portfolio_permission"] = self.request.user.has_edit_org_portfolio_permission() + # context["has_edit_org_portfolio_permission"] return context def get_object(self, queryset=None): @@ -109,7 +109,7 @@ class PortfolioSeniorOfficialView(PortfolioBasePermissionView, FormMixin): def get_context_data(self, **kwargs): """Add additional context data to the template.""" context = super().get_context_data(**kwargs) - context["has_edit_org_portfolio_permission"] = self.request.user.has_edit_org_portfolio_permission() + context["senior_official"] = self.get_object().senior_official return context def get_object(self, queryset=None): @@ -131,6 +131,8 @@ class PortfolioSeniorOfficialView(PortfolioBasePermissionView, FormMixin): form = self.get_form() return self.render_to_response(self.get_context_data(form=form)) + # These functions are included for future compatibility, but for now + # we do not offer an edit mode for senior officials. def post(self, request, *args, **kwargs): """Handle POST requests to process form submission.""" self.object = self.get_object() @@ -155,4 +157,4 @@ class PortfolioSeniorOfficialView(PortfolioBasePermissionView, FormMixin): def get_success_url(self): """Redirect to the overview page for the portfolio.""" - return reverse("senior-official") \ No newline at end of file + return reverse("senior-official")