Readonly logic

This commit is contained in:
zandercymatics 2024-08-09 10:00:44 -06:00
parent 1dc93f7d0f
commit a9a93df5cd
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
3 changed files with 29 additions and 26 deletions

View file

@ -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()

View file

@ -23,9 +23,7 @@
<p>Your senior official is a person within your organization who can authorize domain requests.</p>
<p>The senior official for your organization cant be updated here. To suggest an update, email <a href="mailto:help@get.gov" class="usa-link">help@get.gov</a></p>
{% if has_edit_org_portfolio_permission %}
{% if santa_exists %}
{% include "includes/form_errors.html" with form=form %}
{% include "includes/required_fields.html" %}
<form class="usa-form usa-form--large" method="post" novalidate>
@ -39,15 +37,20 @@
</button>
</form>
{% else %}
<h4 class="read-only-label">Full name</h4>
<p class="read-only-value">
{{ portfolio.senior_official.get_formatted_name }}
</p>
{% 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 %}
<p>The senior official for your organization cant be updated here. To suggest an update, email <a href="mailto:help@get.gov" class="usa-link">help@get.gov</a></p>
{% if not senior_official %}
<h4>No senior official was found for this portfolio.</h4>
{% 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 %}

View file

@ -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()