diff --git a/src/registrar/admin.py b/src/registrar/admin.py
index f03495748..8268af593 100644
--- a/src/registrar/admin.py
+++ b/src/registrar/admin.py
@@ -14,7 +14,6 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import Group
from django.contrib.contenttypes.models import ContentType
from django.urls import reverse
-from dateutil.relativedelta import relativedelta # type: ignore
from epplibwrapper.errors import ErrorCode, RegistryError
from registrar.models.user_domain_role import UserDomainRole
from waffle.admin import FlagAdmin
@@ -2238,25 +2237,12 @@ class DomainAdmin(ListHeaderAdmin, ImportExportModelAdmin):
extra_context["state_help_message"] = Domain.State.get_admin_help_text(domain.state)
extra_context["domain_state"] = domain.get_state_display()
-
- # Pass in what the an extended expiration date would be for the expiration date modal
- self._set_expiration_date_context(domain, extra_context)
+ extra_context["curr_exp_date"] = (
+ domain.expiration_date if domain.expiration_date is not None else self._get_current_date()
+ )
return super().changeform_view(request, object_id, form_url, extra_context)
- def _set_expiration_date_context(self, domain, extra_context):
- """Given a domain, calculate the an extended expiration date
- from the current registry expiration date."""
- years_to_extend_by = self._get_calculated_years_for_exp_date(domain)
- try:
- curr_exp_date = domain.registry_expiration_date
- except KeyError:
- # No expiration date was found. Return none.
- extra_context["extended_expiration_date"] = None
- else:
- new_date = curr_exp_date + relativedelta(years=years_to_extend_by)
- extra_context["extended_expiration_date"] = new_date
-
def response_change(self, request, obj):
# Create dictionary of action functions
ACTION_FUNCTIONS = {
@@ -2284,11 +2270,9 @@ class DomainAdmin(ListHeaderAdmin, ImportExportModelAdmin):
self.message_user(request, "Object is not of type Domain.", messages.ERROR)
return None
- years = self._get_calculated_years_for_exp_date(obj)
-
# Renew the domain.
try:
- obj.renew_domain(length=years)
+ obj.renew_domain()
self.message_user(
request,
"Successfully extended the expiration date.",
@@ -2313,37 +2297,6 @@ class DomainAdmin(ListHeaderAdmin, ImportExportModelAdmin):
return HttpResponseRedirect(".")
- def _get_calculated_years_for_exp_date(self, obj, extension_period: int = 1):
- """Given the current date, an extension period, and a registry_expiration_date
- on the domain object, calculate the number of years needed to extend the
- current expiration date by the extension period.
- """
- # Get the date we want to update to
- desired_date = self._get_current_date() + relativedelta(years=extension_period)
-
- # Grab the current expiration date
- try:
- exp_date = obj.registry_expiration_date
- except KeyError:
- # if no expiration date from registry, set it to today
- logger.warning("current expiration date not set; setting to today")
- exp_date = self._get_current_date()
-
- # If the expiration date is super old (2020, for example), we need to
- # "catch up" to the current year, so we add the difference.
- # If both years match, then lets just proceed as normal.
- calculated_exp_date = exp_date + relativedelta(years=extension_period)
-
- year_difference = desired_date.year - exp_date.year
-
- years = extension_period
- if desired_date > calculated_exp_date:
- # Max probably isn't needed here (no code flow), but it guards against negative and 0.
- # In both of those cases, we just want to extend by the extension_period.
- years = max(extension_period, year_difference)
-
- return years
-
# Workaround for unit tests, as we cannot mock date directly.
# it is immutable. Rather than dealing with a convoluted workaround,
# lets wrap this in a function.
diff --git a/src/registrar/templates/django/admin/domain_change_form.html b/src/registrar/templates/django/admin/domain_change_form.html
index 80888423d..f020fabf0 100644
--- a/src/registrar/templates/django/admin/domain_change_form.html
+++ b/src/registrar/templates/django/admin/domain_change_form.html
@@ -69,7 +69,7 @@
- This will extend the expiration date by one year.
+ This will extend the expiration date by one year from today.
{# Acts as a
#}
This action cannot be undone.
@@ -78,7 +78,7 @@
Domain:
{{ original.name }}
{# Acts as a
#}
- New expiration date:
{{ extended_expiration_date }}
+ Current expiration date:
{{ curr_exp_date }}
{{test}}
diff --git a/src/registrar/tests/common.py b/src/registrar/tests/common.py
index b6247ea2d..4d13f0bb9 100644
--- a/src/registrar/tests/common.py
+++ b/src/registrar/tests/common.py
@@ -1551,8 +1551,6 @@ class MockEppLib(TestCase):
def mockInfoDomainCommands(self, _request, cleaned):
request_name = getattr(_request, "name", None).lower()
- print(request_name)
-
# Define a dictionary to map request names to data and extension values
request_mappings = {
"security.gov": (self.infoDomainNoContact, None),
diff --git a/src/registrar/tests/test_admin.py b/src/registrar/tests/test_admin.py
index 9b17779f1..8a9bfa093 100644
--- a/src/registrar/tests/test_admin.py
+++ b/src/registrar/tests/test_admin.py
@@ -374,9 +374,9 @@ class TestDomainAdmin(MockEppLib, WebTest):
# Create a ready domain with a preset expiration date
domain, _ = Domain.objects.get_or_create(name="fake.gov", state=Domain.State.READY)
-
response = self.app.get(reverse("admin:registrar_domain_change", args=[domain.pk]))
-
+ # load expiration date into cache and registrar with below command
+ domain.registry_expiration_date
# Make sure the ex date is what we expect it to be
domain_ex_date = Domain.objects.get(id=domain.id).expiration_date
self.assertEqual(domain_ex_date, date(2023, 5, 25))
@@ -400,7 +400,6 @@ class TestDomainAdmin(MockEppLib, WebTest):
self.assertEqual(response.status_code, 200)
self.assertContains(response, domain.name)
self.assertContains(response, "Extend expiration date")
- self.assertContains(response, "New expiration date: May 25, 2025")
# Ensure the message we recieve is in line with what we expect
expected_message = "Successfully extended the expiration date."
@@ -519,70 +518,10 @@ class TestDomainAdmin(MockEppLib, WebTest):
# Follow the response
response = response.follow()
- # This value is based off of the current year - the expiration date.
- # We "freeze" time to 2024, so 2024 - 2023 will always result in an
- # "extension" of 2, as that will be one year of extension from that date.
- extension_length = 2
-
- # Assert that it is calling the function with the right extension length.
+ # Assert that it is calling the function with the default extension length.
# We only need to test the value that EPP sends, as we can assume the other
# test cases cover the "renew" function.
- renew_mock.assert_has_calls([call(length=extension_length)], any_order=False)
-
- # We should not make duplicate calls
- self.assertEqual(renew_mock.call_count, 1)
-
- # Assert that everything on the page looks correct
- self.assertEqual(response.status_code, 200)
- self.assertContains(response, domain.name)
- self.assertContains(response, "Extend expiration date")
-
- # Ensure the message we recieve is in line with what we expect
- expected_message = "Successfully extended the expiration date."
- expected_call = call(
- # The WGSI request doesn't need to be tested
- ANY,
- messages.INFO,
- expected_message,
- extra_tags="",
- fail_silently=False,
- )
- mock_add_message.assert_has_calls([expected_call], 1)
-
- @patch("registrar.admin.DomainAdmin._get_current_date", return_value=date(2023, 1, 1))
- def test_extend_expiration_date_button_date_matches_epp(self, mock_date_today):
- """
- Tests if extend_expiration_date button sends the right epp command
- when the current year matches the expiration date
- """
-
- # Create a ready domain with a preset expiration date
- domain, _ = Domain.objects.get_or_create(name="fake.gov", state=Domain.State.READY)
-
- response = self.app.get(reverse("admin:registrar_domain_change", args=[domain.pk]))
-
- # Make sure that the page is loading as expected
- self.assertEqual(response.status_code, 200)
- self.assertContains(response, domain.name)
- self.assertContains(response, "Extend expiration date")
-
- # Grab the form to submit
- form = response.forms["domain_form"]
-
- with patch("django.contrib.messages.add_message") as mock_add_message:
- with patch("registrar.models.Domain.renew_domain") as renew_mock:
- # Submit the form
- response = form.submit("_extend_expiration_date")
-
- # Follow the response
- response = response.follow()
-
- extension_length = 1
-
- # Assert that it is calling the function with the right extension length.
- # We only need to test the value that EPP sends, as we can assume the other
- # test cases cover the "renew" function.
- renew_mock.assert_has_calls([call(length=extension_length)], any_order=False)
+ renew_mock.assert_has_calls([call()], any_order=False)
# We should not make duplicate calls
self.assertEqual(renew_mock.call_count, 1)
diff --git a/src/registrar/tests/test_reports.py b/src/registrar/tests/test_reports.py
index d23c0230b..bbe6cb6f8 100644
--- a/src/registrar/tests/test_reports.py
+++ b/src/registrar/tests/test_reports.py
@@ -735,7 +735,6 @@ class ExportDataTest(MockDb, MockEppLib):
csv_file.seek(0)
# Read the content into a variable
csv_content = csv_file.read()
- print(csv_content)
self.maxDiff = None
expected_content = (
# Header