diff --git a/src/registrar/admin.py b/src/registrar/admin.py index eee2eda2f..07039e27e 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 42ebdff79..017964299 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 1eba565cf..07e97d159 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 0028034fb..f764dd3ce 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