mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-25 12:08:40 +02:00
add the other rejection reason
This commit is contained in:
parent
ad591086be
commit
d9b56957c5
5 changed files with 48 additions and 2 deletions
|
@ -339,6 +339,10 @@ function enableRelatedWidgetButtons(changeLink, deleteLink, viewLink, elementPk,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listen to Back/Forward button navigation and handle rejectionReasonFormGroup display based on session storage
|
// Listen to Back/Forward button navigation and handle rejectionReasonFormGroup display based on session storage
|
||||||
|
|
||||||
|
// When you navigate using forward/back after changing status but not saving, when you land back on the DA page the
|
||||||
|
// status select will say (for example) Rejected but the selected option can be something else. To manage the show/hide
|
||||||
|
// accurately for this edge case, we use cache and test for the back/forward navigation.
|
||||||
const observer = new PerformanceObserver((list) => {
|
const observer = new PerformanceObserver((list) => {
|
||||||
list.getEntries().forEach((entry) => {
|
list.getEntries().forEach((entry) => {
|
||||||
if (entry.type === "back_forward") {
|
if (entry.type === "back_forward") {
|
||||||
|
|
|
@ -27,6 +27,7 @@ class Migration(migrations.Migration):
|
||||||
),
|
),
|
||||||
("organization_eligibility", "Organization isn't eligible for a .gov"),
|
("organization_eligibility", "Organization isn't eligible for a .gov"),
|
||||||
("naming_requirements", "Naming requirements not met"),
|
("naming_requirements", "Naming requirements not met"),
|
||||||
|
("other", "Other"),
|
||||||
],
|
],
|
||||||
null=True,
|
null=True,
|
||||||
),
|
),
|
||||||
|
|
|
@ -363,6 +363,7 @@ class DomainApplication(TimeStampedModel):
|
||||||
)
|
)
|
||||||
ORGANIZATION_ELIGIBILITY = "organization_eligibility", "Organization isn't eligible for a .gov"
|
ORGANIZATION_ELIGIBILITY = "organization_eligibility", "Organization isn't eligible for a .gov"
|
||||||
NAMING_REQUIREMENTS = "naming_requirements", "Naming requirements not met"
|
NAMING_REQUIREMENTS = "naming_requirements", "Naming requirements not met"
|
||||||
|
OTHER = "other", "Other"
|
||||||
|
|
||||||
# #### Internal fields about the application #####
|
# #### Internal fields about the application #####
|
||||||
status = FSMField(
|
status = FSMField(
|
||||||
|
|
|
@ -8,8 +8,9 @@ REQUEST RECEIVED ON: {{ application.submission_date|date }}
|
||||||
STATUS: Rejected
|
STATUS: Rejected
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
{% if application.rejection_reason != 'other' %}
|
||||||
REJECTION REASON{% if application.rejection_reason == 'domain_purpose' %}
|
REJECTION REASON{% endif %}
|
||||||
|
{% if application.rejection_reason == 'domain_purpose' %}
|
||||||
Your domain request was rejected because the purpose you provided did not meet our
|
Your domain request was rejected because the purpose you provided did not meet our
|
||||||
requirements. You didn’t provide enough information about how you intend to use the
|
requirements. You didn’t provide enough information about how you intend to use the
|
||||||
domain.
|
domain.
|
||||||
|
@ -63,6 +64,17 @@ general public. Learn more about naming requirements for your type of organizati
|
||||||
YOU CAN SUBMIT A NEW REQUEST
|
YOU CAN SUBMIT A NEW REQUEST
|
||||||
We encourage you to request a domain that meets our requirements. If you have
|
We encourage you to request a domain that meets our requirements. If you have
|
||||||
questions or want to discuss potential domain names, reply to this email.
|
questions or want to discuss potential domain names, reply to this email.
|
||||||
|
{% elif application.rejection_reason == 'other' %}
|
||||||
|
YOU CAN SUBMIT A NEW REQUEST
|
||||||
|
If your organization is eligible for a .gov domain and you meet our other requirements, you can submit a new request.
|
||||||
|
|
||||||
|
Learn more about:
|
||||||
|
- Eligibility for a .gov domain <https://get.gov/domains/eligibility>
|
||||||
|
- Choosing a .gov domain name <https://get.gov/domains/choosing>
|
||||||
|
|
||||||
|
|
||||||
|
NEED ASSISTANCE?
|
||||||
|
If you have questions about this domain request or need help choosing a new domain name, reply to this email.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
THANK YOU
|
THANK YOU
|
||||||
|
|
|
@ -712,6 +712,34 @@ class TestDomainApplicationAdmin(MockEppLib):
|
||||||
self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL)
|
self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL)
|
||||||
self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
|
self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
|
||||||
|
|
||||||
|
def test_save_model_sends_rejected_email_other(self):
|
||||||
|
"""When transitioning to rejected on a domain request, an email is sent
|
||||||
|
explaining why when the reason is other."""
|
||||||
|
|
||||||
|
with less_console_noise():
|
||||||
|
# Ensure there is no user with this email
|
||||||
|
EMAIL = "mayor@igorville.gov"
|
||||||
|
User.objects.filter(email=EMAIL).delete()
|
||||||
|
|
||||||
|
# Create a sample application
|
||||||
|
application = completed_application(status=DomainApplication.ApplicationStatus.IN_REVIEW)
|
||||||
|
|
||||||
|
# Reject for reason NAMING_REQUIREMENTS and test email including dynamic organization name
|
||||||
|
self.transition_state_and_send_email(
|
||||||
|
application,
|
||||||
|
DomainApplication.ApplicationStatus.REJECTED,
|
||||||
|
DomainApplication.RejectionReasons.OTHER,
|
||||||
|
)
|
||||||
|
self.assert_email_is_accurate(
|
||||||
|
"Choosing a .gov domain name", 0, EMAIL
|
||||||
|
)
|
||||||
|
self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
|
||||||
|
|
||||||
|
# Approve
|
||||||
|
self.transition_state_and_send_email(application, DomainApplication.ApplicationStatus.APPROVED)
|
||||||
|
self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL)
|
||||||
|
self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
|
||||||
|
|
||||||
def test_transition_to_rejected_without_rejection_reason_does_trigger_error(self):
|
def test_transition_to_rejected_without_rejection_reason_does_trigger_error(self):
|
||||||
"""
|
"""
|
||||||
When transitioning to rejected without a rejection reason, admin throws a user friendly message.
|
When transitioning to rejected without a rejection reason, admin throws a user friendly message.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue