diff --git a/src/registrar/migrations/0043_domain_expiration_date.py b/src/registrar/migrations/0043_domain_expiration_date.py new file mode 100644 index 000000000..51d2d384a --- /dev/null +++ b/src/registrar/migrations/0043_domain_expiration_date.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.6 on 2023-10-27 19:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("registrar", "0042_create_groups_v03"), + ] + + operations = [ + migrations.AddField( + model_name="domain", + name="expiration_date", + field=models.DateField( + help_text="Duplication of registry's expiration date saved for ease of reporting", + null=True, + ), + ), + ] diff --git a/src/registrar/models/domain.py b/src/registrar/models/domain.py index 942647ef1..344ef5a00 100644 --- a/src/registrar/models/domain.py +++ b/src/registrar/models/domain.py @@ -5,6 +5,7 @@ import re from datetime import date from string import digits from typing import Optional + from django_fsm import FSMField, transition, TransitionNotAllowed # type: ignore from django.db import models @@ -29,6 +30,7 @@ from epplibwrapper import ( from registrar.models.utility.contact_error import ContactError, ContactErrorCodes +from django.db.models import DateField from .utility.domain_field import DomainField from .utility.domain_helper import DomainHelper from .utility.time_stamped_model import TimeStampedModel @@ -209,12 +211,12 @@ class Domain(TimeStampedModel, DomainHelper): return self._get_property("up_date") @Cache - def expiration_date(self) -> date: + def registry_expiration_date(self) -> date: """Get or set the `ex_date` element from the registry.""" return self._get_property("ex_date") - @expiration_date.setter # type: ignore - def expiration_date(self, ex_date: date): + @registry_expiration_date.setter # type: ignore + def registry_expiration_date(self, ex_date: date): pass @Cache @@ -944,6 +946,13 @@ class Domain(TimeStampedModel, DomainHelper): help_text="Very basic info about the lifecycle of this domain object", ) + expiration_date = DateField( + null=True, + help_text=( + "Duplication of registry's expiration" "date saved for ease of reporting" + ), + ) + def isActive(self): return self.state == Domain.State.CREATED diff --git a/src/registrar/tests/test_models_domain.py b/src/registrar/tests/test_models_domain.py index 1d87c6b1c..c6b2b7ce9 100644 --- a/src/registrar/tests/test_models_domain.py +++ b/src/registrar/tests/test_models_domain.py @@ -56,7 +56,7 @@ class TestDomainCache(MockEppLib): self.assertFalse("avail" in domain._cache.keys()) # using a setter should clear the cache - domain.expiration_date = datetime.date.today() + domain.registry_expiration_date = datetime.date.today() self.assertEquals(domain._cache, {}) # send should have been called only once