mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-18 15:34:16 +02:00
Merge branch 'ms/3212-FEB-review' into ms/3457-FEB-emails
This commit is contained in:
commit
b60112872b
7 changed files with 64 additions and 55 deletions
|
@ -147,8 +147,6 @@ class EOPContactForm(BaseDeletableRegistrarForm):
|
|||
Executive Branch (FEB) agency is working with.
|
||||
"""
|
||||
|
||||
field_name = "eop_contact"
|
||||
|
||||
first_name = forms.CharField(
|
||||
label="First name / given name",
|
||||
error_messages={"required": "Enter the first name / given name of this contact."},
|
||||
|
@ -178,12 +176,10 @@ class EOPContactForm(BaseDeletableRegistrarForm):
|
|||
|
||||
@classmethod
|
||||
def from_database(cls, obj):
|
||||
if not obj.eop_contact:
|
||||
return {}
|
||||
return {
|
||||
"first_name": obj.eop_contact.first_name,
|
||||
"last_name": obj.eop_contact.last_name,
|
||||
"email": obj.eop_contact.email,
|
||||
"first_name": obj.eop_stakeholder_first_name,
|
||||
"last_name": obj.eop_stakeholder_last_name,
|
||||
"email": obj.eop_stakeholder_email,
|
||||
}
|
||||
|
||||
def to_database(self, obj):
|
||||
|
@ -195,11 +191,9 @@ class EOPContactForm(BaseDeletableRegistrarForm):
|
|||
return
|
||||
if not self.is_valid():
|
||||
return
|
||||
obj.eop_contact = Contact.objects.create(
|
||||
first_name=self.cleaned_data["first_name"],
|
||||
last_name=self.cleaned_data["last_name"],
|
||||
email=self.cleaned_data["email"],
|
||||
)
|
||||
obj.eop_stakeholder_first_name = self.cleaned_data["first_name"]
|
||||
obj.eop_stakeholder_last_name = self.cleaned_data["last_name"]
|
||||
obj.eop_stakeholder_email = self.cleaned_data["email"]
|
||||
obj.save()
|
||||
|
||||
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
# Generated by Django 4.2.17 on 2025-03-11 18:10
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("registrar", "0142_domainrequest_feb_naming_requirements_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="domainrequest",
|
||||
name="eop_contact",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="eop_contact",
|
||||
to="registrar.contact",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="domainrequest",
|
||||
name="working_with_eop",
|
||||
field=models.BooleanField(blank=True, null=True),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,33 @@
|
|||
# Generated by Django 4.2.17 on 2025-03-17 20:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("registrar", "0142_domainrequest_feb_naming_requirements_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="domainrequest",
|
||||
name="eop_stakeholder_email",
|
||||
field=models.EmailField(blank=True, max_length=254, null=True, verbose_name="EOP Stakeholder Email"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="domainrequest",
|
||||
name="eop_stakeholder_first_name",
|
||||
field=models.CharField(blank=True, null=True, verbose_name="EOP Stakeholder First Name"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="domainrequest",
|
||||
name="eop_stakeholder_last_name",
|
||||
field=models.CharField(blank=True, null=True, verbose_name="EOP Stakeholder Last Name"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="domainrequest",
|
||||
name="working_with_eop",
|
||||
field=models.BooleanField(blank=True, null=True),
|
||||
),
|
||||
]
|
|
@ -528,12 +528,22 @@ class DomainRequest(TimeStampedModel):
|
|||
blank=True,
|
||||
)
|
||||
|
||||
eop_contact = models.ForeignKey(
|
||||
"registrar.Contact",
|
||||
eop_stakeholder_first_name = models.CharField(
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="eop_contact",
|
||||
on_delete=models.PROTECT,
|
||||
verbose_name="EOP Stakeholder First Name",
|
||||
)
|
||||
|
||||
eop_stakeholder_last_name = models.CharField(
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="EOP Stakeholder Last Name",
|
||||
)
|
||||
|
||||
eop_stakeholder_email = models.EmailField(
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="EOP Stakeholder Email",
|
||||
)
|
||||
|
||||
# This field is alternately used for generic domain purpose explanations
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
{% else %}
|
||||
<p class="margin-y-0">No</p>
|
||||
{% endif %}
|
||||
<h4 class="margin-bottom-0">EOP Stakeholder</h4>
|
||||
<h4 class="margin-bottom-0">Interagency Initiative</h4>
|
||||
{% if domain_request.is_interagency_initiative is None %}
|
||||
<p class="margin-y-0"><span class='text-bold text-secondary-dark'>Incomplete</span></p>
|
||||
{% elif domain_request.is_interagency_initiative %}
|
||||
|
@ -110,8 +110,8 @@
|
|||
{% if domain_request.working_with_eop is None %}
|
||||
<p class="margin-y-0"><span class='text-bold text-secondary-dark'>Incomplete</span></p>
|
||||
{% elif domain_request.working_with_eop %}
|
||||
<p class="margin-y-0">{{domain_request.eop_contact.first_name}} {{domain_request.eop_contact.last_name}}</p>
|
||||
<p class="margin-y-0">{{domain_request.eop_contact.email}}</p>
|
||||
<p class="margin-y-0">{{domain_request.eop_stakeholder_first_name}} {{domain_request.eop_stakeholder_last_name}}</p>
|
||||
<p class="margin-y-0">{{domain_request.eop_stakeholder_email}}</p>
|
||||
{% else %}
|
||||
<p class="margin-y-0">No</p>
|
||||
{% endif %}
|
||||
|
|
|
@ -1985,7 +1985,9 @@ class TestDomainRequestAdmin(MockEppLib):
|
|||
"feb_naming_requirements_details",
|
||||
"feb_purpose_choice",
|
||||
"working_with_eop",
|
||||
"eop_contact",
|
||||
"eop_stakeholder_first_name",
|
||||
"eop_stakeholder_last_name",
|
||||
"eop_stakeholder_email",
|
||||
"purpose",
|
||||
"has_timeframe",
|
||||
"time_frame_details",
|
||||
|
|
|
@ -2745,21 +2745,21 @@ class DomainRequestTests(TestWithUser, WebTest):
|
|||
|
||||
def feb_review_page_tests(self, review_page):
|
||||
# Meets Naming Requirements
|
||||
self.assertContains(review_page, "<h4>Meets Naming Requirements</h4>")
|
||||
self.assertContains(review_page, "Meets Naming Requirements")
|
||||
self.assertContains(review_page, "No")
|
||||
self.assertContains(review_page, "Because this is a test")
|
||||
# Purpose
|
||||
self.assertContains(review_page, "<h4>Purpose</h4>")
|
||||
self.assertContains(review_page, "Purpose")
|
||||
self.assertContains(review_page, "Used as a redirect for an existing website")
|
||||
self.assertContains(review_page, "testPurpose123")
|
||||
# Target Time Frame
|
||||
self.assertContains(review_page, "<h4>Target Time Frame</h4>")
|
||||
self.assertContains(review_page, "Target Time Frame")
|
||||
self.assertContains(review_page, "1/2/2025 - 1/2/2026")
|
||||
# Interagency Initiative
|
||||
self.assertContains(review_page, "<h4>Interagency Initiative</h4>")
|
||||
self.assertContains(review_page, "Interagency Initiative")
|
||||
self.assertContains(review_page, "FakeInteragencyInitiative")
|
||||
# EOP Stakeholder
|
||||
self.assertContains(review_page, "<h4>EOP Stakeholder</h4>")
|
||||
self.assertContains(review_page, "EOP Stakeholder")
|
||||
self.assertContains(review_page, "TesterFirstName TesterLastName")
|
||||
self.assertContains(review_page, "testy@town.com")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue