diff --git a/src/registrar/admin.py b/src/registrar/admin.py index d754f82e2..18709a777 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -2845,8 +2845,6 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportRegistrarModelAdmin): "cisa_representative_first_name", "cisa_representative_last_name", "cisa_representative_email", - "eop_stakeholder_first_name", - "eop_stakeholder_last_name", ] }, ), @@ -3065,8 +3063,6 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportRegistrarModelAdmin): "feb_purpose_choice", "time_frame_details", "interagency_initiative_details", - "eop_stakeholder_first_name", - "eop_stakeholder_last_name", ] org_fields = [ diff --git a/src/registrar/assets/src/js/getgov/domain-purpose-form.js b/src/registrar/assets/src/js/getgov/domain-purpose-form.js index 7934d5f68..d61ac36c9 100644 --- a/src/registrar/assets/src/js/getgov/domain-purpose-form.js +++ b/src/registrar/assets/src/js/getgov/domain-purpose-form.js @@ -15,12 +15,13 @@ export const domain_purpose_choice_callbacks = { showElement(element); // change just the text inside the em tag const labelElement = element.querySelector('p em'); - labelElement.innerHTML = 'Explain why a new domain name is needed instead of using a ' + - 'subdomain of an existing website.' + - '

' + // Adding double line break for spacing - 'Include any information or data that shows how the new domain would ' + - 'benefit the public or meet user needs. ' + - '*'; + labelElement.innerHTML = ` +

Describe how the domain will be used. Explain why a new domain name is needed + instead of using a subdomain or subdirectory of an existing website.

+

Include any qualitative or quantitative data that supports there being a + clear user need or public benefit for the new domain. + *

+ `; // Mark that we're no longer in initial load isInitialLoad = false; @@ -38,8 +39,13 @@ export const domain_purpose_choice_callbacks = { showElement(element); // change just the text inside the em tag const labelElement = element.querySelector('p em'); - labelElement.innerHTML = 'Explain why a redirect is necessary. ' + - '*'; + labelElement.innerHTML = ` +

Describe how the domain will be used. Provide the URL where the + new domain will resolve and explain why a redirect is necessary.

+

Include any qualitative or quantitative data that supports + there being a clear user need or public benefit for the new domain as a redirect. + *

+ `; // Mark that we're no longer in initial load isInitialLoad = false; @@ -57,8 +63,11 @@ export const domain_purpose_choice_callbacks = { showElement(element); // change just the text inside the em tag const labelElement = element.querySelector('p em'); - labelElement.innerHTML = 'Describe how this domain will be used. ' + - '*'; + labelElement.innerHTML = ` +

Describe how the domain will be used + (e.g. email, internal network purposes). + *

+ `; // Mark that we're no longer in initial load isInitialLoad = false; diff --git a/src/registrar/assets/src/js/getgov/main.js b/src/registrar/assets/src/js/getgov/main.js index a496b76f3..9f0afa35b 100644 --- a/src/registrar/assets/src/js/getgov/main.js +++ b/src/registrar/assets/src/js/getgov/main.js @@ -28,7 +28,6 @@ initFormDSData(); hookupYesNoListener("other_contacts-has_other_contacts",'other-employees', 'no-other-employees'); hookupYesNoListener("additional_details-has_anything_else_text",'anything-else', null); hookupYesNoListener("additional_details-has_cisa_representative",'cisa-representative', null); -hookupYesNoListener("portfolio_additional_details-working_with_eop", "eop-contact-container", null); hookupYesNoListener("portfolio_additional_details-has_anything_else_text", 'anything-else-details-container', null); hookupYesNoListener("dotgov_domain-feb_naming_requirements", null, "domain-naming-requirements-details-container"); diff --git a/src/registrar/forms/feb.py b/src/registrar/forms/feb.py index f0b311b02..8daf33f1a 100644 --- a/src/registrar/forms/feb.py +++ b/src/registrar/forms/feb.py @@ -121,72 +121,17 @@ class FEBInteragencyInitiativeYesNoForm(BaseDeletableRegistrarForm, BaseYesNoFor class FEBInteragencyInitiativeDetailsForm(BaseDeletableRegistrarForm): interagency_initiative_details = forms.CharField( label="interagency_initiative_details", - widget=forms.Textarea(attrs={"aria-label": "Name the agencies that will be involved in this initiative."}), + widget=forms.Textarea(attrs={"aria-label": "Provide details on the nature of the interagency initiative."}), validators=[ MaxLengthValidator( 2000, message="Response must be less than 2000 characters.", ) ], - error_messages={"required": "Name the agencies that will be involved in this initiative."}, + error_messages={"required": "Provide details on the nature of the interagency initiative."}, ) -class WorkingWithEOPYesNoForm(BaseDeletableRegistrarForm, BaseYesNoForm): - """ - Form for determining if the Federal Executive Branch (FEB) agency is working with the - Executive Office of the President (EOP) on the domain request. - """ - - field_name = "working_with_eop" - - @property - def form_is_checked(self): - """ - Determines the initial checked state of the form based on the domain_request's attributes. - """ - return self.domain_request.working_with_eop - - -class EOPContactForm(BaseDeletableRegistrarForm): - """ - Form for contact information of the representative of the - Executive Office of the President (EOP) that the Federal - Executive Branch (FEB) agency is working with. - """ - - first_name = forms.CharField( - label="First name / given name", - error_messages={"required": "Enter the first name / given name of this contact."}, - required=True, - ) - last_name = forms.CharField( - label="Last name / family name", - error_messages={"required": "Enter the last name / family name of this contact."}, - required=True, - ) - - @classmethod - def from_database(cls, obj): - return { - "first_name": obj.eop_stakeholder_first_name, - "last_name": obj.eop_stakeholder_last_name, - } - - def to_database(self, obj): - # This function overrides the behavior of the BaseDeletableRegistrarForm. - # in order to preserve deletable functionality, we need to call the - # superclass's to_database method if the form is marked for deletion. - if self.form_data_marked_for_deletion: - super().to_database(obj) - return - if not self.is_valid(): - return - obj.eop_stakeholder_first_name = self.cleaned_data["first_name"] - obj.eop_stakeholder_last_name = self.cleaned_data["last_name"] - obj.save() - - class FEBAnythingElseYesNoForm(BaseYesNoForm, BaseDeletableRegistrarForm): """Yes/no toggle for the anything else question on additional details""" diff --git a/src/registrar/migrations/0149_alter_domainrequest_feb_purpose_choice.py b/src/registrar/migrations/0149_alter_domainrequest_feb_purpose_choice.py new file mode 100644 index 000000000..7d48f1936 --- /dev/null +++ b/src/registrar/migrations/0149_alter_domainrequest_feb_purpose_choice.py @@ -0,0 +1,27 @@ +# Generated by Django 4.2.20 on 2025-05-27 03:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("registrar", "0148_alter_domain_name_domain_unique_name_except_deleted"), + ] + + operations = [ + migrations.AlterField( + model_name="domainrequest", + name="feb_purpose_choice", + field=models.CharField( + blank=True, + choices=[ + ("new", "Used for a new website"), + ("redirect", "Used as a redirect for an existing or new website"), + ("other", "Not for a website"), + ], + null=True, + verbose_name="Purpose type", + ), + ), + ] diff --git a/src/registrar/migrations/0150_remove_domainrequest_eop_stakeholder_first_name_and_more.py b/src/registrar/migrations/0150_remove_domainrequest_eop_stakeholder_first_name_and_more.py new file mode 100644 index 000000000..df5cf2e48 --- /dev/null +++ b/src/registrar/migrations/0150_remove_domainrequest_eop_stakeholder_first_name_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.20 on 2025-05-28 00:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("registrar", "0149_alter_domainrequest_feb_purpose_choice"), + ] + + operations = [ + migrations.RemoveField( + model_name="domainrequest", + name="eop_stakeholder_first_name", + ), + migrations.RemoveField( + model_name="domainrequest", + name="eop_stakeholder_last_name", + ), + migrations.RemoveField( + model_name="domainrequest", + name="working_with_eop", + ), + ] diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index b93f93ea5..b868d253d 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -56,7 +56,7 @@ class DomainRequest(TimeStampedModel): class FEBPurposeChoices(models.TextChoices): WEBSITE = "new", "Used for a new website" - REDIRECT = "redirect", "Used as a redirect for an existing website" + REDIRECT = "redirect", "Used as a redirect for an existing or new website" OTHER = "other", "Not for a website" @classmethod @@ -532,23 +532,6 @@ class DomainRequest(TimeStampedModel): verbose_name="Purpose type", ) - working_with_eop = models.BooleanField( - null=True, - blank=True, - ) - - eop_stakeholder_first_name = models.CharField( - null=True, - blank=True, - verbose_name="EOP contact first name", - ) - - eop_stakeholder_last_name = models.CharField( - null=True, - blank=True, - verbose_name="EOP contact last name", - ) - # This field is alternately used for generic domain purpose explanations # and for explanations of the specific purpose chosen with feb_purpose_choice purpose = models.TextField( diff --git a/src/registrar/templates/domain_request_dotgov_domain.html b/src/registrar/templates/domain_request_dotgov_domain.html index 60923a48b..b0ca5d8f6 100644 --- a/src/registrar/templates/domain_request_dotgov_domain.html +++ b/src/registrar/templates/domain_request_dotgov_domain.html @@ -3,11 +3,11 @@ {% block form_instructions %}

- Before requesting a .gov domain, please make sure it meets + Before requesting a .gov domain, please make sure it meets the {% if requires_feb_questions %} - our naming requirements for executive branch agencies. Your domain name must: + naming requirements for executive branch agencies. Your domain name must: {% else %} - our naming requirements. Your domain name must: + naming requirements. Your domain name must: {% endif %}

-

Compliance with the 21st Century IDEA Act is required

-

As required by the DOTGOV Act, agencies must ensure - that any website or digital service that uses a .gov - domain name is in compliance with the - 21st Century Integrated Digital Experience Act - and - Guidance for Agencies. -

Acknowledgement of .gov domain requirements

{% input_with_errors forms.0.is_policy_acknowledged %} {% else %} diff --git a/src/registrar/templates/emails/includes/portfolio_domain_request_summary.txt b/src/registrar/templates/emails/includes/portfolio_domain_request_summary.txt index 63a32fa11..99ebc7467 100644 --- a/src/registrar/templates/emails/includes/portfolio_domain_request_summary.txt +++ b/src/registrar/templates/emails/includes/portfolio_domain_request_summary.txt @@ -2,10 +2,6 @@ Requesting entity: {# if blockmakes a newline #} {{ domain_request|display_requesting_entity }} -{% if domain_request.current_websites.exists %} -Current websites: {% for site in domain_request.current_websites.all %} -{% spaceless %}{{ site.website }}{% endspaceless %} -{% endfor %}{% endif %} .gov domain: {{ domain_request.requested_domain.name }} {% if requires_feb_questions %} @@ -25,29 +21,20 @@ Purpose of your domain: {% if requires_feb_questions %} {{ purpose_label }} {{ domain_request.purpose }} -Target time frame: -{% if domain_request.has_target_time_frame %} -{{ domain_request.time_frame_details }} -{% else %} -No -{% endif %} Interagency initiative: {% if domain_request.is_interagency_initiative %} {{ domain_request.interagency_initiative_details }} {% else %} No {% endif %} -{% else %} -{{ domain_request.purpose }} -{% endif %} -{% if requires_feb_questions %} -EOP contact: -{% if domain_request.working_with_eop %} -{{ domain_request.eop_contact.first_name }} {{ domain_request.eop_contact.last_name }} -{{ domain_request.eop_contact.email }} +Target time frame: +{% if domain_request.has_target_time_frame %} +{{ domain_request.time_frame_details }} {% else %} No {% endif %} +{% else %} +{{ domain_request.purpose }} {% endif %} {% if domain_request.anything_else %} Additional details: diff --git a/src/registrar/templates/includes/portfolio_request_review_steps.html b/src/registrar/templates/includes/portfolio_request_review_steps.html index 51b1ce7cd..a15e1c06e 100644 --- a/src/registrar/templates/includes/portfolio_request_review_steps.html +++ b/src/registrar/templates/includes/portfolio_request_review_steps.html @@ -28,18 +28,6 @@ {% endwith %} {% endif %} - {% if step == Step.CURRENT_SITES %} - {% if domain_request.current_websites.all %} - {% with title=form_titles|get_item:step value=domain_request.current_websites.all %} - {% include "includes/summary_item.html" with title=title value=value heading_level=heading_level editable=is_editable edit_link=domain_request_url list='true' %} - {% endwith %} - {% else %} - {% with title=form_titles|get_item:step value='None' %} - {% include "includes/summary_item.html" with title=title value=value heading_level=heading_level editable=is_editable edit_link=domain_request_url %} - {% endwith %} - {% endif %} - {% endif %} - {% if step == Step.DOTGOV_DOMAIN %} {% with title=form_titles|get_item:step value=domain_request.requested_domain.name|default:"Incomplete"|safe%} {% include "includes/summary_item.html" with title=title value=value heading_level=heading_level editable=is_editable edit_link=domain_request_url %} @@ -78,14 +66,6 @@ {% else %}

Incomplete

{% endif %} -

Target time frame

- {% if domain_request.has_timeframe is None %} -

Incomplete

- {% elif domain_request.has_timeframe %} -

{{domain_request.time_frame_details}}

- {% else %} -

No

- {% endif %}

Interagency initiative

{% if domain_request.is_interagency_initiative is None %}

Incomplete

@@ -94,6 +74,14 @@ {% else %}

No

{% endif %} +

Target time frame

+ {% if domain_request.has_timeframe is None %} +

Incomplete

+ {% elif domain_request.has_timeframe %} +

{{domain_request.time_frame_details}}

+ {% else %} +

No

+ {% endif %} {% else %} {% with title=form_titles|get_item:step value=domain_request.purpose|default:"Incomplete"|safe %} {% include "includes/summary_item.html" with title=title value=value heading_level=heading_level editable=is_editable edit_link=domain_request_url %} @@ -106,14 +94,6 @@ {% with title=form_titles|get_item:step %} {% include "includes/summary_item.html" with title=title value=" " heading_level=heading_level editable=is_editable edit_link=domain_request_url %} {% endwith %} -

EOP contact

- {% if domain_request.working_with_eop is None %} -

Incomplete

- {% elif domain_request.working_with_eop %} -

{{domain_request.eop_stakeholder_first_name}} {{domain_request.eop_stakeholder_last_name}}

- {% else %} -

No

- {% endif %}

Anything else

{% if domain_request.anything_else %}

{{domain_request.anything_else}}

diff --git a/src/registrar/templates/portfolio_domain_request_additional_details.html b/src/registrar/templates/portfolio_domain_request_additional_details.html index 9f005692e..ea6e97af3 100644 --- a/src/registrar/templates/portfolio_domain_request_additional_details.html +++ b/src/registrar/templates/portfolio_domain_request_additional_details.html @@ -8,38 +8,17 @@ {% block form_fields %} {% include "includes/required_fields.html" %} {% if requires_feb_questions %} -
+ +
{{forms.0.management_form}} {{forms.1.management_form}} -

Are you working with someone in the Executive Office of the President (EOP) on this request?

-

Working with the EOP is not required to request a .gov domain.

-

- Select one. * -

- {% with add_class="usa-radio__input--tile" add_legend_class="usa-sr-only" add_aria_describedby="working-with-eop--requirement" add_legend_heading="Are you working with someone in the Executive Office of the President (EOP) on this request?" %} - {% input_with_errors forms.0.working_with_eop %} - {% endwith %} - - -
- -
- {{forms.2.management_form}} - {{forms.3.management_form}}

Is there anything else you'd like us to know about your domain request?

+

Describe any additional information that would assist in the review of your request. If you are working with someone in the Executive Office of the President on this request, please describe below.

Select one. *

{% with add_class="usa-radio__input--tile" add_legend_class="usa-sr-only" add_legend_heading="Is there anything else you'd like us to know about your domain request?"%} - {% input_with_errors forms.2.has_anything_else_text %} + {% input_with_errors forms.0.has_anything_else_text %} {% endwith %}
@@ -60,7 +39,7 @@

This question is optional.

{% with attr_maxlength=2000 add_label_class="usa-sr-only" %} - {% input_with_errors forms.3.anything_else %} + {% input_with_errors forms.1.anything_else %} {% endwith %}
{% endif %} diff --git a/src/registrar/tests/test_admin_request.py b/src/registrar/tests/test_admin_request.py index 7442fee9e..ebefde866 100644 --- a/src/registrar/tests/test_admin_request.py +++ b/src/registrar/tests/test_admin_request.py @@ -2061,9 +2061,6 @@ class TestDomainRequestAdmin(MockEppLib): "feb_naming_requirements", "feb_naming_requirements_details", "feb_purpose_choice", - "working_with_eop", - "eop_stakeholder_first_name", - "eop_stakeholder_last_name", "purpose", "has_timeframe", "time_frame_details", diff --git a/src/registrar/tests/test_views_portfolio.py b/src/registrar/tests/test_views_portfolio.py index 40a9482f1..83a3e9516 100644 --- a/src/registrar/tests/test_views_portfolio.py +++ b/src/registrar/tests/test_views_portfolio.py @@ -3456,7 +3456,7 @@ class TestRequestingEntity(WebTest): response = form.submit().follow() # Verify successful submission by checking we're on the next page - self.assertContains(response, "Current websites") + self.assertContains(response, ".gov domain") @override_flag("organization_feature", active=True) @override_flag("organization_requests", active=True) @@ -3513,7 +3513,7 @@ class TestRequestingEntity(WebTest): response = form.submit().follow() # Ensure that the post occurred successfully by checking that we're on the following page. - self.assertContains(response, "Current websites") + self.assertContains(response, ".gov domain") created_domain_request_exists = DomainRequest.objects.filter( organization_name__isnull=True, sub_organization=self.suborganization ).exists() @@ -3549,7 +3549,7 @@ class TestRequestingEntity(WebTest): response = form.submit().follow() # Ensure that the post occurred successfully by checking that we're on the following page. - self.assertContains(response, "Current websites") + self.assertContains(response, ".gov domain") created_domain_request_exists = DomainRequest.objects.filter( organization_name__isnull=True, sub_organization__isnull=True, @@ -3584,7 +3584,7 @@ class TestRequestingEntity(WebTest): response = form.submit().follow() # Ensure that the post occurred successfully by checking that we're on the following page. - self.assertContains(response, "Current websites") + self.assertContains(response, ".gov domain") created_domain_request_exists = DomainRequest.objects.filter( organization_name=self.portfolio.organization_name, ).exists() diff --git a/src/registrar/tests/test_views_request.py b/src/registrar/tests/test_views_request.py index b1d1b73be..7e7d2aae9 100644 --- a/src/registrar/tests/test_views_request.py +++ b/src/registrar/tests/test_views_request.py @@ -2594,20 +2594,9 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) requesting_entity_result = requesting_entity_form.submit() - # ---- CURRENT SITES PAGE ---- - # Follow the redirect to the next form page - self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - current_sites_page = requesting_entity_result.follow() - current_sites_form = current_sites_page.forms[0] - current_sites_form["current_sites-0-website"] = "www.treasury.com" - - # test saving the page - self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - current_sites_result = current_sites_form.submit() - # ---- DOTGOV DOMAIN PAGE ---- self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - dotgov_page = current_sites_result.follow() + dotgov_page = requesting_entity_result.follow() # separate out these tests for readability self.feb_dotgov_domain_tests(dotgov_page) @@ -2645,9 +2634,6 @@ class DomainRequestTests(TestWithUser, WebTest): self.feb_additional_details_page_tests(additional_details_page) additional_details_form = additional_details_page.forms[0] - additional_details_form["portfolio_additional_details-working_with_eop"] = "True" - additional_details_form["portfolio_additional_details-first_name"] = "TesterFirstName" - additional_details_form["portfolio_additional_details-last_name"] = "TesterLastName" additional_details_form["portfolio_additional_details-has_anything_else_text"] = "True" additional_details_form["portfolio_additional_details-anything_else"] = "test" self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -2669,6 +2655,13 @@ class DomainRequestTests(TestWithUser, WebTest): self.feb_review_page_tests(review_page) def feb_purpose_page_tests(self, purpose_page): + # Check for the 21st Century IDEA Act links + self.assertContains(purpose_page, "https://digital.gov/resources/delivering-digital-first-public-experience/") + self.assertContains( + purpose_page, + "https://whitehouse.gov/wp-content/uploads/2023/09/M-23-22-Delivering-a-Digital-First-Public-Experience.pdf", # noqa + ) + self.assertContains(purpose_page, "What is the purpose of your requested domain?") # Make sure the purpose selector form is present @@ -2700,7 +2693,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertContains(dotgov_page, "Does this submission meet each domain naming requirement?") # Check for label of second FEB form - self.assertContains(dotgov_page, "Provide details below") + self.assertContains(dotgov_page, "Provide details") # Check that the yes/no form was included self.assertContains(dotgov_page, "feb_naming_requirements") @@ -2709,36 +2702,18 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertContains(dotgov_page, "feb_naming_requirements_details") def feb_additional_details_page_tests(self, additional_details_page): - test_text = "Are you working with someone in the Executive Office of the President (EOP) on this request?" - self.assertContains(additional_details_page, test_text) - - # Make sure the EOP form is present - self.assertContains(additional_details_page, "working_with_eop") - - # Make sure the EOP contact form is present - self.assertContains(additional_details_page, "eop-contact-container") - self.assertContains(additional_details_page, "additional_details-first_name") - self.assertContains(additional_details_page, "additional_details-last_name") # Make sure the additional details form is present self.assertContains(additional_details_page, "additional_details-has_anything_else_text") self.assertContains(additional_details_page, "additional_details-anything_else") def feb_requirements_page_tests(self, requirements_page): - # Check for the 21st Century IDEA Act links - self.assertContains( - requirements_page, "https://digital.gov/resources/delivering-digital-first-public-experience-act/" - ) - self.assertContains( - requirements_page, - "https://bidenwhitehouse.gov/wp-content/uploads/2023/09/M-23-22-Delivering-a-Digital-First-Public-Experience.pdf", # noqa - ) # Check for the policy acknowledgement form self.assertContains(requirements_page, "is_policy_acknowledged") self.assertContains( requirements_page, - "I read and understand the guidance outlined in the DOTGOV Act for operating a .gov domain.", + "I read and agree to the requirements for operating a .gov domain.", ) def feb_review_page_tests(self, review_page): @@ -2748,7 +2723,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertContains(review_page, "Because this is a test") # Purpose self.assertContains(review_page, "Purpose") - self.assertContains(review_page, "Used as a redirect for an existing website") + self.assertContains(review_page, "Used as a redirect for an existing or new website") self.assertContains(review_page, "testPurpose123") # Target time frame self.assertContains(review_page, "Target time frame") @@ -2756,9 +2731,6 @@ class DomainRequestTests(TestWithUser, WebTest): # Interagency initiative self.assertContains(review_page, "Interagency initiative") self.assertContains(review_page, "FakeInteragencyInitiative") - # EOP contact - self.assertContains(review_page, "EOP contact") - self.assertContains(review_page, "TesterFirstName TesterLastName") @less_console_noise_decorator def test_domain_request_formsets(self): @@ -3448,7 +3420,7 @@ class TestDomainRequestWizard(TestWithUser, WebTest): self.assertContains(detail_page, portfolio.organization_name) # We should only see one unlocked step - self.assertContains(detail_page, "#check_circle", count=4) + self.assertContains(detail_page, "#check_circle", count=3) # One pages should still be locked (additional details) self.assertContains(detail_page, "#lock", 1) diff --git a/src/registrar/utility/csv_export.py b/src/registrar/utility/csv_export.py index 00c7a84af..70a08e192 100644 --- a/src/registrar/utility/csv_export.py +++ b/src/registrar/utility/csv_export.py @@ -1846,12 +1846,6 @@ class DomainRequestExport(BaseExport): purpose_type_display = ( DomainRequest.FEBPurposeChoices.get_purpose_label(purpose_type) if purpose_type else "N/A" ) - eop_stakeholder_first_name = model.get("eop_stakeholder_first_name") - eop_stakeholder_last_name = model.get("eop_stakeholder_last_name") - if not eop_stakeholder_first_name or not eop_stakeholder_last_name: - eop_stakeholder_name = None - else: - eop_stakeholder_name = f"{eop_stakeholder_first_name} {eop_stakeholder_last_name}" # create a dictionary of fields which can be included in output. # "extra_fields" are precomputed fields (generated in the DB or parsed). @@ -1899,7 +1893,6 @@ class DomainRequestExport(BaseExport): "Domain name rationale": model.get("feb_naming_requirements_details", None), "Target time frame": model.get("time_frame_details", None), "Interagency initiative": model.get("interagency_initiative_details", None), - "EOP stakeholder name": eop_stakeholder_name, } row = [FIELDS.get(column, "") for column in columns] @@ -1949,8 +1942,6 @@ class DomainRequestDataType(DomainRequestExport): "Domain name rationale", "Target time frame", "Interagency initiative", - "EOP stakeholder name", - "EOP stakeholder email", ] @classmethod @@ -2099,8 +2090,6 @@ class DomainRequestDataFull(DomainRequestExport): "Domain name rationale", "Target time frame", "Interagency initiative", - "EOP stakeholder name", - "EOP stakeholder email", ] @classmethod diff --git a/src/registrar/utility/enums.py b/src/registrar/utility/enums.py index 6c2649eec..ad2105bfa 100644 --- a/src/registrar/utility/enums.py +++ b/src/registrar/utility/enums.py @@ -100,7 +100,6 @@ class PortfolioDomainRequestStep(StrEnum): # By default, these will redirect to the normal request flow views. # After creating a new view, you will need to add this to urls.py. REQUESTING_ENTITY = "portfolio_requesting_entity" - CURRENT_SITES = "current_sites" DOTGOV_DOMAIN = "dotgov_domain" PURPOSE = "purpose" ADDITIONAL_DETAILS = "portfolio_additional_details" diff --git a/src/registrar/views/domain_request.py b/src/registrar/views/domain_request.py index 02540c847..32428c90c 100644 --- a/src/registrar/views/domain_request.py +++ b/src/registrar/views/domain_request.py @@ -83,7 +83,6 @@ class DomainRequestWizard(TemplateView): # Titles for the portfolio context PORTFOLIO_TITLES = { PortfolioDomainRequestStep.REQUESTING_ENTITY: _("Requesting entity"), - PortfolioDomainRequestStep.CURRENT_SITES: _("Current websites"), PortfolioDomainRequestStep.DOTGOV_DOMAIN: _(".gov domain"), PortfolioDomainRequestStep.PURPOSE: _("Purpose of your domain"), PortfolioDomainRequestStep.ADDITIONAL_DETAILS: _("Additional details"), @@ -134,9 +133,6 @@ class DomainRequestWizard(TemplateView): PORTFOLIO_UNLOCKING_STEPS = { PortfolioDomainRequestStep.REQUESTING_ENTITY: lambda w: w.from_model("unlock_requesting_entity", False), - PortfolioDomainRequestStep.CURRENT_SITES: lambda self: ( - self.domain_request.current_websites.exists() or self.from_model("unlock_requesting_entity", False) - ), PortfolioDomainRequestStep.DOTGOV_DOMAIN: lambda self: self.domain_request.requested_domain is not None, PortfolioDomainRequestStep.PURPOSE: lambda self: self.domain_request.purpose is not None, PortfolioDomainRequestStep.ADDITIONAL_DETAILS: lambda self: self.domain_request.anything_else is not None, @@ -615,8 +611,6 @@ class PortfolioAdditionalDetails(DomainRequestWizard): template_name = "portfolio_domain_request_additional_details.html" forms = [ - feb.WorkingWithEOPYesNoForm, - feb.EOPContactForm, feb.FEBAnythingElseYesNoForm, forms.PortfolioAnythingElseForm, ] @@ -631,37 +625,29 @@ class PortfolioAdditionalDetails(DomainRequestWizard): Validates the forms for portfolio additional details. Expected order of forms_list: - 0: WorkingWithEOPYesNoForm - 1: EOPContactForm - 2: FEBAnythingElseYesNoForm - 3: PortfolioAnythingElseForm + 0: FEBAnythingElseYesNoForm + 1: PortfolioAnythingElseForm """ + feb_anything_else_yes_no_form = forms[0] + portfolio_anything_else_form = forms[1] + if not self.requires_feb_questions(): - for i in range(3): + for i in range(1): forms[i].mark_form_for_deletion() # If FEB questions aren't required, validate only the anything else form - return forms[3].is_valid() - eop_forms_valid = True - if not forms[0].is_valid(): - # If the user isn't working with EOP, don't validate the EOP contact form - forms[1].mark_form_for_deletion() - eop_forms_valid = False - if forms[0].cleaned_data.get("working_with_eop"): - eop_forms_valid = forms[1].is_valid() - else: - forms[1].mark_form_for_deletion() + return feb_anything_else_yes_no_form.is_valid() anything_else_forms_valid = True - if not forms[2].is_valid(): - forms[3].mark_form_for_deletion() + if not portfolio_anything_else_form.is_valid(): + feb_anything_else_yes_no_form.mark_form_for_deletion() anything_else_forms_valid = False - if forms[2].cleaned_data.get("has_anything_else_text"): - forms[3].fields["anything_else"].required = True - forms[3].fields["anything_else"].error_messages[ + if portfolio_anything_else_form.cleaned_data.get("has_anything_else_text"): + feb_anything_else_yes_no_form.fields["anything_else"].required = True + feb_anything_else_yes_no_form.fields["anything_else"].error_messages[ "required" ] = "Please provide additional details you'd like us to know. \ If you have nothing to add, select 'No'." - anything_else_forms_valid = forms[3].is_valid() - return eop_forms_valid and anything_else_forms_valid + anything_else_forms_valid = feb_anything_else_yes_no_form.is_valid() + return anything_else_forms_valid # Non-portfolio pages @@ -957,14 +943,9 @@ class Requirements(DomainRequestWizard): # Pass the is_federal context to the form for form in forms_list: if isinstance(form, forms.RequirementsForm): - if self.requires_feb_questions(): - form.fields["is_policy_acknowledged"].label = ( - "I read and understand the guidance outlined in the DOTGOV Act for operating a .gov domain." # noqa: E501 - ) - else: - form.fields["is_policy_acknowledged"].label = ( - "I read and agree to the requirements for operating a .gov domain." # noqa: E501 - ) + form.fields["is_policy_acknowledged"].label = ( + "I read and agree to the requirements for operating a .gov domain." # noqa: E501 + ) return forms_list