diff --git a/src/registrar/forms/feb.py b/src/registrar/forms/feb.py index 05b2acf3f..339151c71 100644 --- a/src/registrar/forms/feb.py +++ b/src/registrar/forms/feb.py @@ -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() diff --git a/src/registrar/migrations/0143_domainrequest_eop_contact_and_more.py b/src/registrar/migrations/0143_domainrequest_eop_contact_and_more.py deleted file mode 100644 index a5c65f26f..000000000 --- a/src/registrar/migrations/0143_domainrequest_eop_contact_and_more.py +++ /dev/null @@ -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), - ), - ] diff --git a/src/registrar/migrations/0143_domainrequest_eop_stakeholder_email_and_more.py b/src/registrar/migrations/0143_domainrequest_eop_stakeholder_email_and_more.py new file mode 100644 index 000000000..3cf65047c --- /dev/null +++ b/src/registrar/migrations/0143_domainrequest_eop_stakeholder_email_and_more.py @@ -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), + ), + ] diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index f80ab08d0..1499ec109 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -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 diff --git a/src/registrar/tests/test_admin_request.py b/src/registrar/tests/test_admin_request.py index 7bc150326..b7d9b7e81 100644 --- a/src/registrar/tests/test_admin_request.py +++ b/src/registrar/tests/test_admin_request.py @@ -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",