From 510b8e3f15f0eb5651527f2a4304c0a8f52811b1 Mon Sep 17 00:00:00 2001 From: Rachid Mrad Date: Mon, 8 Jan 2024 18:13:54 -0500 Subject: [PATCH 01/18] Handle the word 'optional' in nameservers labels on add and delete --- src/registrar/assets/js/get-gov.js | 39 +++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/registrar/assets/js/get-gov.js b/src/registrar/assets/js/get-gov.js index 177b771e4..9e3f699bf 100644 --- a/src/registrar/assets/js/get-gov.js +++ b/src/registrar/assets/js/get-gov.js @@ -260,10 +260,22 @@ function removeForm(e, formLabel, isNameserversForm, addButton, formIdentifier){ // h2 and legend for DS form, label for nameservers Array.from(form.querySelectorAll('h2, legend, label, p')).forEach((node) => { + + let innerSpan = node.querySelector('span') + if (innerSpan) { + innerSpan.textContent = innerSpan.textContent.replace(formLabelRegex, `${formLabel} ${index + 1}`); + } else { + node.textContent = node.textContent.replace(formLabelRegex, `${formLabel} ${index + 1}`); + node.textContent = node.textContent.replace(formExampleRegex, `ns${index + 1}`); + } // If the node is a nameserver label, one of the first 2 which was previously 3 and up (not required) // inject the USWDS required markup and make sure the INPUT is required if (isNameserversForm && index <= 1 && node.innerHTML.includes('server') && !node.innerHTML.includes('*')) { + + // Remove the word optional + innerSpan.textContent = innerSpan.textContent.replace(/\s*\(\s*optional\s*\)\s*/, ''); + // Create a new element const newElement = document.createElement('abbr'); newElement.textContent = '*'; @@ -286,13 +298,8 @@ function removeForm(e, formLabel, isNameserversForm, addButton, formIdentifier){ nextInputElement.required = true; } - let innerSpan = node.querySelector('span') - if (innerSpan) { - innerSpan.textContent = innerSpan.textContent.replace(formLabelRegex, `${formLabel} ${index + 1}`); - } else { - node.textContent = node.textContent.replace(formLabelRegex, `${formLabel} ${index + 1}`); - node.textContent = node.textContent.replace(formExampleRegex, `ns${index + 1}`); - } + + }); // Display the add more button if we have less than 13 forms @@ -469,7 +476,7 @@ function hideDeletedForms() { let formLabel = ''; let isNameserversForm = document.title.includes("DNS name servers |"); let isOtherContactsForm = document.title.includes("Other employees from your organization"); - // The Nameservers form st features 2 required and 11 optionals + // The Nameservers formset features 2 required and 11 optionals if (isNameserversForm) { cloneIndex = 2; formLabel = "Name server"; @@ -537,16 +544,24 @@ function hideDeletedForms() { formNum++; newForm.innerHTML = newForm.innerHTML.replace(formNumberRegex, `${formIdentifier}-${formNum-1}-`); - // For the other contacts form, we need to update the fieldset headers based on what's visible vs hidden, - // since the form on the backend employs Django's DELETE widget. For the other formsets, we delete the form - // in JS (completely remove from teh DOM) so we update the headers/labels based on total number of forms. if (isOtherContactsForm) { + // For the other contacts form, we need to update the fieldset headers based on what's visible vs hidden, + // since the form on the backend employs Django's DELETE widget. let totalShownForms = document.querySelectorAll(`.repeatable-form:not([style*="display: none"])`).length; newForm.innerHTML = newForm.innerHTML.replace(formLabelRegex, `${formLabel} ${totalShownForms + 1}`); } else { - newForm.innerHTML = newForm.innerHTML.replace(formLabelRegex, `${formLabel} ${formNum}`); + // Nameservers form is cloned from index 2 which has the word optional on init, does not have the word optional + // if indices 0 or 1 have been deleted + let containsOptional = newForm.innerHTML.includes('(optional)'); + if (isNameserversForm && !containsOptional) { + newForm.innerHTML = newForm.innerHTML.replace(formLabelRegex, `${formLabel} ${formNum} (optional)`); + } else { + newForm.innerHTML = newForm.innerHTML.replace(formLabelRegex, `${formLabel} ${formNum}`); + } } newForm.innerHTML = newForm.innerHTML.replace(formExampleRegex, `ns${formNum}`); + newForm.innerHTML = newForm.innerHTML.replace(/\n/g, ''); // Remove newline characters + newForm.innerHTML = newForm.innerHTML.replace(/>\s*<'); // Remove spaces between tags container.insertBefore(newForm, addButton); newForm.style.display = 'block'; From 0b503442a8388cf6494520a03063234d28024312 Mon Sep 17 00:00:00 2001 From: Rachid Mrad Date: Fri, 12 Jan 2024 15:50:04 -0500 Subject: [PATCH 02/18] Change header to Current websites --- src/registrar/templates/application_status.html | 2 +- .../templates/emails/includes/application_summary.txt | 2 +- src/registrar/tests/test_emails.py | 6 +++--- src/registrar/views/application.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/registrar/templates/application_status.html b/src/registrar/templates/application_status.html index fbabf39a7..590d00b28 100644 --- a/src/registrar/templates/application_status.html +++ b/src/registrar/templates/application_status.html @@ -90,7 +90,7 @@ {% endif %} {% if domainapplication.current_websites.all %} - {% include "includes/summary_item.html" with title='Current website for your organization' value=domainapplication.current_websites.all list='true' heading_level=heading_level %} + {% include "includes/summary_item.html" with title='Current websites' value=domainapplication.current_websites.all list='true' heading_level=heading_level %} {% endif %} {% if domainapplication.requested_domain %} diff --git a/src/registrar/templates/emails/includes/application_summary.txt b/src/registrar/templates/emails/includes/application_summary.txt index c628e1074..ee2564613 100644 --- a/src/registrar/templates/emails/includes/application_summary.txt +++ b/src/registrar/templates/emails/includes/application_summary.txt @@ -17,7 +17,7 @@ About your organization: Authorizing official: {% spaceless %}{% include "emails/includes/contact.txt" with contact=application.authorizing_official %}{% endspaceless %} {% if application.current_websites.exists %}{# if block makes a newline #} -Current website for your organization: {% for site in application.current_websites.all %} +Current websites: {% for site in application.current_websites.all %} {% spaceless %}{{ site.website }}{% endspaceless %} {% endfor %}{% endif %} .gov domain: diff --git a/src/registrar/tests/test_emails.py b/src/registrar/tests/test_emails.py index 61c950255..bc0513a07 100644 --- a/src/registrar/tests/test_emails.py +++ b/src/registrar/tests/test_emails.py @@ -47,7 +47,7 @@ class TestEmails(TestCase): # check for optional things self.assertIn("Other employees from your organization:", body) self.assertIn("Testy2 Tester2", body) - self.assertIn("Current website for your organization:", body) + self.assertIn("Current websites:", body) self.assertIn("city.com", body) self.assertIn("About your organization:", body) self.assertIn("Anything else", body) @@ -61,7 +61,7 @@ class TestEmails(TestCase): application.submit() _, kwargs = self.mock_client.send_email.call_args body = kwargs["Content"]["Simple"]["Body"]["Text"]["Data"] - self.assertNotIn("Current website for your organization:", body) + self.assertNotIn("Current websites:", body) # spacing should be right between adjacent elements self.assertRegex(body, r"5555\n\n.gov domain:") @@ -74,7 +74,7 @@ class TestEmails(TestCase): application.submit() _, kwargs = self.mock_client.send_email.call_args body = kwargs["Content"]["Simple"]["Body"]["Text"]["Data"] - self.assertIn("Current website for your organization:", body) + self.assertIn("Current websites:", body) # spacing should be right between adjacent elements self.assertRegex(body, r"5555\n\nCurrent website for") self.assertRegex(body, r"city.com\n\n.gov domain:") diff --git a/src/registrar/views/application.py b/src/registrar/views/application.py index 486964e66..3eabe574f 100644 --- a/src/registrar/views/application.py +++ b/src/registrar/views/application.py @@ -83,7 +83,7 @@ class ApplicationWizard(ApplicationWizardPermissionView, TemplateView): Step.ORGANIZATION_CONTACT: _("Organization name and mailing address"), Step.ABOUT_YOUR_ORGANIZATION: _("About your organization"), Step.AUTHORIZING_OFFICIAL: _("Authorizing official"), - Step.CURRENT_SITES: _("Current website for your organization"), + Step.CURRENT_SITES: _("Current websites"), Step.DOTGOV_DOMAIN: _(".gov domain"), Step.PURPOSE: _("Purpose of your domain"), Step.YOUR_CONTACT: _("Your contact information"), From 9300b06d4c56a19176bb1bf62e56afa88647eef5 Mon Sep 17 00:00:00 2001 From: Rachid Mrad Date: Fri, 12 Jan 2024 15:55:56 -0500 Subject: [PATCH 03/18] Fixed test test_submission_confirmation_current_website_spacing --- src/registrar/tests/test_emails.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/tests/test_emails.py b/src/registrar/tests/test_emails.py index bc0513a07..3f5b7fc18 100644 --- a/src/registrar/tests/test_emails.py +++ b/src/registrar/tests/test_emails.py @@ -76,7 +76,7 @@ class TestEmails(TestCase): body = kwargs["Content"]["Simple"]["Body"]["Text"]["Data"] self.assertIn("Current websites:", body) # spacing should be right between adjacent elements - self.assertRegex(body, r"5555\n\nCurrent website for") + self.assertRegex(body, r"5555\n\nCurrent websites for") self.assertRegex(body, r"city.com\n\n.gov domain:") @boto3_mocking.patching From 938e501a6cafa1d706dbbf4399d87898bda2e0e7 Mon Sep 17 00:00:00 2001 From: Rachid Mrad Date: Fri, 12 Jan 2024 15:56:16 -0500 Subject: [PATCH 04/18] Fixed test test_submission_confirmation_current_website_spacing --- src/registrar/tests/test_emails.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/tests/test_emails.py b/src/registrar/tests/test_emails.py index 3f5b7fc18..fcdd46577 100644 --- a/src/registrar/tests/test_emails.py +++ b/src/registrar/tests/test_emails.py @@ -76,7 +76,7 @@ class TestEmails(TestCase): body = kwargs["Content"]["Simple"]["Body"]["Text"]["Data"] self.assertIn("Current websites:", body) # spacing should be right between adjacent elements - self.assertRegex(body, r"5555\n\nCurrent websites for") + self.assertRegex(body, r"5555\n\nCurrent websites") self.assertRegex(body, r"city.com\n\n.gov domain:") @boto3_mocking.patching From 3b2ca4e6e985c6218d30df0d7c00fba3e94a296c Mon Sep 17 00:00:00 2001 From: Rachid Mrad Date: Tue, 16 Jan 2024 22:49:32 -0500 Subject: [PATCH 05/18] Content changes on other_contacts page --- .../templates/application_other_contacts.html | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/registrar/templates/application_other_contacts.html b/src/registrar/templates/application_other_contacts.html index c8810edce..4e13f705b 100644 --- a/src/registrar/templates/application_other_contacts.html +++ b/src/registrar/templates/application_other_contacts.html @@ -2,11 +2,11 @@ {% load static field_helpers %} {% block form_instructions %} -

To help us assess your eligibility for a .gov domain, please provide contact information for other employees from your organization. +

To help us determine your organization’s eligibility for a .gov domain, it’s helpful to have contact information for other employees from your organization.

    -
  • They should be clearly and publicly affiliated with your organization and familiar with your domain request.
  • -
  • They don't need to be involved with the technical management of your domain (although they can be).
  • -
  • We typically don’t reach out to these employees, but if contact is necessary, our practice is to coordinate first with you, the requestor.
  • +
  • They should be clearly and publicly affiliated with your organization and familiar with your domain request.
  • +
  • They don’t need to be involved with the technical management of your domain (although they can be).
  • +
  • We typically don’t reach out to these employees, but if contact is necessary, our practice is to coordinate with you first.

@@ -88,9 +88,7 @@

No other employees from your organization?

-

You don't need to provide names of other employees now, but it may - slow down our assessment of your eligibility. Describe why there are - no other employees who can help verify your request.

+

You don’t need to provide names of other employees now, but it may slow down our assessment of your eligibility. Describe why there are no other employees who can help verify your request.

{% with attr_maxlength=1000 add_label_class="usa-sr-only" %} {% input_with_errors forms.2.no_other_contacts_rationale %} {% endwith %} From 3ed806c1a1ecaaec1712c0ef0dadcc0c265feebd Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Wed, 17 Jan 2024 21:30:23 -0400 Subject: [PATCH 06/18] removed the hover effect and disable of the start button --- src/registrar/templates/home.html | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index 138f83e04..92ca03343 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -13,22 +13,10 @@

Manage your domains

- {% if IS_PRODUCTION %} - - Start a new domain request - - {% else %} Start a new domain request - {% endif %}

From b140d631f57363ae2e216b20e3dfe36d599f09a7 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Thu, 18 Jan 2024 11:42:17 -0500 Subject: [PATCH 07/18] update all references to beta.get.gov to get.gov in all settings files; update application_org_contact to use _public_site_url rather than hardcoded value --- ops/manifests/manifest-ab.yaml | 2 +- ops/manifests/manifest-backup.yaml | 2 +- ops/manifests/manifest-bl.yaml | 2 +- ops/manifests/manifest-development.yaml | 2 +- ops/manifests/manifest-dk.yaml | 2 +- ops/manifests/manifest-es.yaml | 2 +- ops/manifests/manifest-gd.yaml | 2 +- ops/manifests/manifest-ko.yaml | 2 +- ops/manifests/manifest-ky.yaml | 2 +- ops/manifests/manifest-nl.yaml | 2 +- ops/manifests/manifest-rb.yaml | 2 +- ops/manifests/manifest-rh.yaml | 2 +- ops/manifests/manifest-rjm.yaml | 2 +- ops/manifests/manifest-stable.yaml | 2 +- ops/manifests/manifest-staging.yaml | 2 +- ops/manifests/manifest-za.yaml | 2 +- ops/scripts/manifest-sandbox-template-migrate.yaml | 2 +- ops/scripts/manifest-sandbox-template.yaml | 2 +- src/docker-compose.yml | 2 +- src/registrar/config/settings.py | 2 +- src/registrar/templates/application_org_contact.html | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/ops/manifests/manifest-ab.yaml b/ops/manifests/manifest-ab.yaml index 38109bdcb..3ca800392 100644 --- a/ops/manifests/manifest-ab.yaml +++ b/ops/manifests/manifest-ab.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-backup.yaml b/ops/manifests/manifest-backup.yaml index c4615d1d5..ab9e36d68 100644 --- a/ops/manifests/manifest-backup.yaml +++ b/ops/manifests/manifest-backup.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-bl.yaml b/ops/manifests/manifest-bl.yaml index 59529278b..ea0617427 100644 --- a/ops/manifests/manifest-bl.yaml +++ b/ops/manifests/manifest-bl.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-development.yaml b/ops/manifests/manifest-development.yaml index 0a1f30ffa..08244cf08 100644 --- a/ops/manifests/manifest-development.yaml +++ b/ops/manifests/manifest-development.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-dk.yaml b/ops/manifests/manifest-dk.yaml index 256beeda2..071efb416 100644 --- a/ops/manifests/manifest-dk.yaml +++ b/ops/manifests/manifest-dk.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-es.yaml b/ops/manifests/manifest-es.yaml index 47c78ce1b..7fd19b7a0 100644 --- a/ops/manifests/manifest-es.yaml +++ b/ops/manifests/manifest-es.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-gd.yaml b/ops/manifests/manifest-gd.yaml index 0c4b2535f..89a7c2169 100644 --- a/ops/manifests/manifest-gd.yaml +++ b/ops/manifests/manifest-gd.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-ko.yaml b/ops/manifests/manifest-ko.yaml index cc6a09337..a69493f9b 100644 --- a/ops/manifests/manifest-ko.yaml +++ b/ops/manifests/manifest-ko.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-ky.yaml b/ops/manifests/manifest-ky.yaml index 31d67cfb3..f416d7385 100644 --- a/ops/manifests/manifest-ky.yaml +++ b/ops/manifests/manifest-ky.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-nl.yaml b/ops/manifests/manifest-nl.yaml index ca6fb4693..d74174e7d 100644 --- a/ops/manifests/manifest-nl.yaml +++ b/ops/manifests/manifest-nl.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-rb.yaml b/ops/manifests/manifest-rb.yaml index 62f243513..570b49dde 100644 --- a/ops/manifests/manifest-rb.yaml +++ b/ops/manifests/manifest-rb.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-rh.yaml b/ops/manifests/manifest-rh.yaml index 4985f3261..f44894ce8 100644 --- a/ops/manifests/manifest-rh.yaml +++ b/ops/manifests/manifest-rh.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-rjm.yaml b/ops/manifests/manifest-rjm.yaml index 7d72e7835..048b44e95 100644 --- a/ops/manifests/manifest-rjm.yaml +++ b/ops/manifests/manifest-rjm.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-stable.yaml b/ops/manifests/manifest-stable.yaml index d8502c625..a70035445 100644 --- a/ops/manifests/manifest-stable.yaml +++ b/ops/manifests/manifest-stable.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Which OIDC provider to use OIDC_ACTIVE_PROVIDER: login.gov production # Flag to disable/enable features in prod environments diff --git a/ops/manifests/manifest-staging.yaml b/ops/manifests/manifest-staging.yaml index b616973ac..38099cf17 100644 --- a/ops/manifests/manifest-staging.yaml +++ b/ops/manifests/manifest-staging.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/manifests/manifest-za.yaml b/ops/manifests/manifest-za.yaml index 1b84a74a1..271f49da9 100644 --- a/ops/manifests/manifest-za.yaml +++ b/ops/manifests/manifest-za.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/ops/scripts/manifest-sandbox-template-migrate.yaml b/ops/scripts/manifest-sandbox-template-migrate.yaml index dfebed766..9054e9494 100644 --- a/ops/scripts/manifest-sandbox-template-migrate.yaml +++ b/ops/scripts/manifest-sandbox-template-migrate.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # use a non-default route to avoid conflicts routes: - route: getgov-ENVIRONMENT-migrate.app.cloud.gov diff --git a/ops/scripts/manifest-sandbox-template.yaml b/ops/scripts/manifest-sandbox-template.yaml index 8cdb8d71b..f0aee9664 100644 --- a/ops/scripts/manifest-sandbox-template.yaml +++ b/ops/scripts/manifest-sandbox-template.yaml @@ -22,7 +22,7 @@ applications: # Tell Django how much stuff to log DJANGO_LOG_LEVEL: INFO # default public site location - GETGOV_PUBLIC_SITE_URL: https://beta.get.gov + GETGOV_PUBLIC_SITE_URL: https://get.gov # Flag to disable/enable features in prod environments IS_PRODUCTION: False routes: diff --git a/src/docker-compose.yml b/src/docker-compose.yml index c9b78fd8e..ba6530674 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -32,7 +32,7 @@ services: # Is this a production environment - IS_PRODUCTION # Public site URL link - - GETGOV_PUBLIC_SITE_URL=https://beta.get.gov + - GETGOV_PUBLIC_SITE_URL=https://get.gov # Set a username for accessing the registry - REGISTRY_CL_ID=nothing # Set a password for accessing the registry diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index 2de7e6eb2..efa512f22 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -335,7 +335,7 @@ CSP_INCLUDE_NONCE_IN = ["script-src-elem"] # Cross-Origin Resource Sharing (CORS) configuration # Sets clients that allow access control to manage.get.gov # TODO: remove :8080 to see if we can have all localhost access -CORS_ALLOWED_ORIGINS = ["http://localhost:8080", "https://beta.get.gov"] +CORS_ALLOWED_ORIGINS = ["http://localhost:8080", "https://beta.get.gov", "https://get.gov"] CORS_ALLOWED_ORIGIN_REGEXES = [r"https://[\w-]+\.sites\.pages\.cloud\.gov"] # Content-Length header is set by django.middleware.common.CommonMiddleware diff --git a/src/registrar/templates/application_org_contact.html b/src/registrar/templates/application_org_contact.html index 01b55d03d..8ddd2e6fd 100644 --- a/src/registrar/templates/application_org_contact.html +++ b/src/registrar/templates/application_org_contact.html @@ -2,7 +2,7 @@ {% load field_helpers %} {% block form_instructions %} -

If your domain request is approved, the name of your organization and your city/state will be listed in .gov’s public data.

+

If your domain request is approved, the name of your organization and your city/state will be listed in .gov’s public data.

What is the name and mailing address of the organization you represent?

From 2afd48a4a105fd70e6b32b8a635dcb9802f1e4f6 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Thu, 18 Jan 2024 12:12:49 -0500 Subject: [PATCH 08/18] fixed application_org_contact --- src/registrar/templates/application_org_contact.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/application_org_contact.html b/src/registrar/templates/application_org_contact.html index 8ddd2e6fd..e8e8f50bf 100644 --- a/src/registrar/templates/application_org_contact.html +++ b/src/registrar/templates/application_org_contact.html @@ -1,5 +1,5 @@ {% extends 'application_form.html' %} -{% load field_helpers %} +{% load field_helpers url_helpers %} {% block form_instructions %}

If your domain request is approved, the name of your organization and your city/state will be listed in .gov’s public data.

From c297ec125d942f041f017e5f651e32de148281eb Mon Sep 17 00:00:00 2001 From: rachidatecs <107004823+rachidatecs@users.noreply.github.com> Date: Thu, 18 Jan 2024 12:15:35 -0500 Subject: [PATCH 09/18] Update src/registrar/tests/test_emails.py Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com> --- src/registrar/tests/test_emails.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/tests/test_emails.py b/src/registrar/tests/test_emails.py index fcdd46577..a4f32bfcf 100644 --- a/src/registrar/tests/test_emails.py +++ b/src/registrar/tests/test_emails.py @@ -76,7 +76,7 @@ class TestEmails(TestCase): body = kwargs["Content"]["Simple"]["Body"]["Text"]["Data"] self.assertIn("Current websites:", body) # spacing should be right between adjacent elements - self.assertRegex(body, r"5555\n\nCurrent websites") + self.assertRegex(body, r"5555\n\nCurrent websites:") self.assertRegex(body, r"city.com\n\n.gov domain:") @boto3_mocking.patching From 573d6d05651e0d995a8d41efac4d869c053cbcf9 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Thu, 18 Jan 2024 12:31:09 -0500 Subject: [PATCH 10/18] merged main and fixed hardcoded urls from another test --- src/registrar/tests/test_forms.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/registrar/tests/test_forms.py b/src/registrar/tests/test_forms.py index 7968c54e0..9d553acc5 100644 --- a/src/registrar/tests/test_forms.py +++ b/src/registrar/tests/test_forms.py @@ -101,7 +101,7 @@ class TestFormValidation(MockEppLib): ( "whitehouse.gov", "That domain isn’t available. Read more about " + "href='https://get.gov/domains/choosing' target='_blank'>Read more about " "choosing your .gov domain.", ), ] @@ -151,7 +151,7 @@ class TestFormValidation(MockEppLib): ( "whitehouse.gov", "That domain isn’t available. Read more about " + "href='https://get.gov/domains/choosing' target='_blank'>Read more about " "choosing your .gov domain.", ), ] From 3c99c0339387d79703f14572f2033ebe7c1f5ced Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Thu, 18 Jan 2024 11:21:49 -0700 Subject: [PATCH 11/18] Update home.html --- src/registrar/templates/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index 138f83e04..f0db2d02b 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -58,7 +58,7 @@ {% elif domain.state == domain.State.UNKNOWN or domain.state == domain.State.DNS_NEEDED %} DNS needed {% else %} - {{ domain.state|title }} + {{ domain.state|capfirst }} {% endif %} From 4c7f954211a549ee8ec271d927af04816f9b1a98 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Thu, 18 Jan 2024 18:58:53 -0400 Subject: [PATCH 12/18] removed banner --- src/registrar/templates/base.html | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/registrar/templates/base.html b/src/registrar/templates/base.html index a07bf67ee..aed9987c9 100644 --- a/src/registrar/templates/base.html +++ b/src/registrar/templates/base.html @@ -5,14 +5,6 @@ - {% if IS_PRODUCTION %} - - - - {% endif %} - From fbfcd7052510c77854d3ea076040df8390de7ffe Mon Sep 17 00:00:00 2001 From: Alysia Broddrick <abroddrick@truss.works> Date: Thu, 18 Jan 2024 19:18:21 -0400 Subject: [PATCH 13/18] removed banner --- src/registrar/templates/base.html | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/registrar/templates/base.html b/src/registrar/templates/base.html index aed9987c9..2786cca22 100644 --- a/src/registrar/templates/base.html +++ b/src/registrar/templates/base.html @@ -5,6 +5,14 @@ <html class="no-js" lang="{{ LANGUAGE_CODE }}"> <head> + {% if IS_PRODUCTION %} + <!-- Google tag (gtag.js) --> + <script async src="https://www.googletagmanager.com/gtag/js?id=G-PZ5QSP6QPL"></script> + <script type="text/javascript" nonce="{{request.csp_nonce}}"> + window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-PZ5QSP6QPL'); + </script> + {% endif %} + <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title> @@ -62,19 +70,6 @@ <script src="{% static 'js/uswds.min.js' %}" defer></script> <a class="usa-skipnav" href="#main-content">Skip to main content</a> - {% if IS_DEMO_SITE %} - <section aria-label="Alert" > - <div class="usa-alert usa-alert--info"> - <div class="usa-alert__body"> - <h4 class="usa-alert__heading">New domain requests are paused</h4> - <p class="usa-alert__text measure-none"> - This is the new registrar for managing .gov domains. Note that we’re not accepting requests for new .gov domains until January 2024. Follow .gov updates at <a href="https://get.gov/updates/" class="usa-link">get.gov/updates/</a>. - </p> - </div> - </div> - </section> - {% endif %} - <section class="usa-banner" aria-label="Official website of the United States government"> <div class="usa-accordion"> <header class="usa-banner__header"> From e6812afe8bd6f243404cd1875a423f089211bc4c Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Fri, 19 Jan 2024 09:13:04 -0700 Subject: [PATCH 14/18] Add default to csv_export, readd content --- src/registrar/templates/domain_security_email.html | 2 +- src/registrar/utility/csv_export.py | 2 +- src/registrar/views/domain.py | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/registrar/templates/domain_security_email.html b/src/registrar/templates/domain_security_email.html index 4054186da..e1755f85e 100644 --- a/src/registrar/templates/domain_security_email.html +++ b/src/registrar/templates/domain_security_email.html @@ -20,7 +20,7 @@ <button type="submit" class="usa-button" - >{% if form.security_email.value is None or form.security_email.value == "dotgov@cisa.dhs.gov"%}Add security email{% else %}Save{% endif %}</button> + >{% if form.security_email.value is None or form.security_email.value == "dotgov@cisa.dhs.gov" or form.security_email.value == "registrar@dotgov.gov"%}Add security email{% else %}Save{% endif %}</button> </form> {% endblock %} {# domain_content #} diff --git a/src/registrar/utility/csv_export.py b/src/registrar/utility/csv_export.py index 52afb218b..3924c03c4 100644 --- a/src/registrar/utility/csv_export.py +++ b/src/registrar/utility/csv_export.py @@ -38,7 +38,7 @@ def write_row(writer, columns, domain_info): if security_contacts: security_email = security_contacts[0].email - invalid_emails = {"registrar@dotgov.gov"} + invalid_emails = {"registrar@dotgov.gov", "dotgov@cisa.dhs.gov"} # These are default emails that should not be displayed in the csv report if security_email is not None and security_email.lower() in invalid_emails: security_email = "(blank)" diff --git a/src/registrar/views/domain.py b/src/registrar/views/domain.py index 4d47a6f59..f3e0a3b9d 100644 --- a/src/registrar/views/domain.py +++ b/src/registrar/views/domain.py @@ -568,7 +568,9 @@ class DomainSecurityEmailView(DomainFormBaseView): """The initial value for the form.""" initial = super().get_initial() security_contact = self.object.security_contact - if security_contact is None or security_contact.email == "dotgov@cisa.dhs.gov": + + invalid_emails = ["dotgov@cisa.dhs.gov", "registrar@dotgov.gov"] + if security_contact is None or security_contact.email in invalid_emails: initial["security_email"] = None return initial initial["security_email"] = security_contact.email From 8bcdbec641835566db4bf0ddfe6b7d2a95c2cfa3 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Fri, 19 Jan 2024 09:31:30 -0700 Subject: [PATCH 15/18] Fix unit test --- src/registrar/tests/test_reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/tests/test_reports.py b/src/registrar/tests/test_reports.py index b1c631b3d..a85fb5849 100644 --- a/src/registrar/tests/test_reports.py +++ b/src/registrar/tests/test_reports.py @@ -399,7 +399,7 @@ class ExportDataTest(MockEppLib): "adomain10.gov,Federal,Armed Forces Retirement Home,Ready\n" "adomain2.gov,Interstate,(blank),Dns needed\n" "ddomain3.gov,Federal,Armed Forces Retirement Home,123@mail.gov,On hold,2023-05-25\n" - "defaultsecurity.gov,Federal - Executive,World War I Centennial Commission,dotgov@cisa.dhs.gov,Ready" + "defaultsecurity.gov,Federal - Executive,World War I Centennial Commission,(blank),Ready" ) # Normalize line endings and remove commas, From 6f4eeb495eb7ee97cf46d1eacaf73772deba92a2 Mon Sep 17 00:00:00 2001 From: Michelle Rago <60157596+michelle-rago@users.noreply.github.com> Date: Fri, 19 Jan 2024 12:29:42 -0500 Subject: [PATCH 16/18] Change HTML page title to "Add a domain manager" (#1661) --- src/registrar/templates/domain_add_user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/domain_add_user.html b/src/registrar/templates/domain_add_user.html index 4bad529a7..d67c343a6 100644 --- a/src/registrar/templates/domain_add_user.html +++ b/src/registrar/templates/domain_add_user.html @@ -1,7 +1,7 @@ {% extends "domain_base.html" %} {% load static field_helpers %} -{% block title %}Add another user | {% endblock %} +{% block title %}Add a domain manager | {% endblock %} {% block domain_content %} <h1>Add a domain manager</h1> From c7581d196b4a17cb6ab5467f53c23736ab062e20 Mon Sep 17 00:00:00 2001 From: Cameron Dixon <cameron.dixon@cisa.dhs.gov> Date: Sat, 20 Jan 2024 21:06:43 -0500 Subject: [PATCH 17/18] Add preload content to status_change_approved.txt --- src/registrar/templates/emails/status_change_approved.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/registrar/templates/emails/status_change_approved.txt b/src/registrar/templates/emails/status_change_approved.txt index bc548bfb6..8cfd2a6b1 100644 --- a/src/registrar/templates/emails/status_change_approved.txt +++ b/src/registrar/templates/emails/status_change_approved.txt @@ -32,6 +32,14 @@ Learn more about: - Domain security best practices <https://get.gov/domains/security/> +WE’LL PRELOAD THIS DOMAIN +Each month, we add new .gov domains to the HSTS preload list. This requires browsers to use a secure HTTPS connection to any website at this domain and ensures the content you publish is exactly what your visitors get. It also means you’ll need to support HTTPS anywhere the domain is used for websites – on the internet or internally. We’ll add your domain to the preload list soon. + +Learn more about: +- What preloading is <https://get.gov/domains/security/#preload-your-domain> +- Why we preload new domains <https://get.gov/posts/2021-06-21-an-intent-to-preload/> + + THANK YOU .Gov helps the public identify official, trusted information. Thank you for using a .gov domain. From 4f8216391362d4cf1d72bd63f63bd97805b308de Mon Sep 17 00:00:00 2001 From: Michelle Rago <60157596+michelle-rago@users.noreply.github.com> Date: Mon, 22 Jan 2024 09:06:37 -0500 Subject: [PATCH 18/18] Minor edit --- src/registrar/templates/emails/status_change_approved.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/emails/status_change_approved.txt b/src/registrar/templates/emails/status_change_approved.txt index 8cfd2a6b1..8283f0e67 100644 --- a/src/registrar/templates/emails/status_change_approved.txt +++ b/src/registrar/templates/emails/status_change_approved.txt @@ -33,7 +33,7 @@ Learn more about: WE’LL PRELOAD THIS DOMAIN -Each month, we add new .gov domains to the HSTS preload list. This requires browsers to use a secure HTTPS connection to any website at this domain and ensures the content you publish is exactly what your visitors get. It also means you’ll need to support HTTPS anywhere the domain is used for websites – on the internet or internally. We’ll add your domain to the preload list soon. +We add new .gov domains to the HSTS preload list each month. This requires browsers to use a secure HTTPS connection to any website at this domain and ensures the content you publish is exactly what your visitors get. It also means you’ll need to support HTTPS anywhere the domain is used for websites – on the internet or internally. We’ll add your domain to the preload list soon. Learn more about: - What preloading is <https://get.gov/domains/security/#preload-your-domain>