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 %}
Requests for your organization’s initials or an abbreviated name might not be approved, but we encourage you to request the name you want.
{% endif %} -Note that only federal agencies can request generic terms like - vote.gov.
+Read about activities that are prohibited on .gov domains.
{% if not portfolio %}- After you enter your domain, we’ll make sure it’s available and that it meets some of our naming requirements. - If your domain passes these initial checks, we’ll verify that it meets all our requirements after you complete the rest of this form. + After you enter your domain, we’ll make sure it’s available and that it meets some of the naming requirements. + If your domain passes these initial checks, we’ll verify that it meets all the requirements after you complete the rest of this form.
{% with attr_aria_labelledby="domain_instructions domain_instructions2" attr_aria_describedby="id_dotgov_domain-requested_domain--toast" %} {# attr_validate / validate="domain" invokes code in getgov.min.js #} @@ -120,7 +119,7 @@OMB will review each request against the domain - naming requirements for executive branch agencies. Agency submissions are expected to meet each requirement. + naming requirements for executive branch agencies. Agency submissions are expected to meet each requirement.
Select one. * @@ -132,7 +131,7 @@ {# Conditional Details Field – only shown when the executive naming requirements radio is "False" #}
- + {% else %}Describe how you’ll use your .gov domain. Will it be used for a website, email, or something else?
diff --git a/src/registrar/templates/domain_request_requirements.html b/src/registrar/templates/domain_request_requirements.html index ee178b44c..224cce2b7 100644 --- a/src/registrar/templates/domain_request_requirements.html +++ b/src/registrar/templates/domain_request_requirements.html @@ -70,14 +70,6 @@ -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. -
Incomplete
{% endif %} -Incomplete
- {% elif domain_request.has_timeframe %} -{{domain_request.time_frame_details}}
- {% else %} -No
- {% endif %}Incomplete
@@ -94,6 +74,14 @@ {% else %}No
{% endif %} +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 %} -Incomplete
- {% elif domain_request.working_with_eop %} -{{domain_request.eop_stakeholder_first_name}} {{domain_request.eop_stakeholder_last_name}}
- {% else %} -No
- {% endif %}{{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 %} -