mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-25 03:58:39 +02:00
Backend stuff
This commit is contained in:
parent
055d163c3f
commit
2891391382
2 changed files with 32 additions and 8 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
from datetime import date
|
||||||
import logging
|
import logging
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.db.models.functions import Concat
|
from django.db.models.functions import Concat
|
||||||
|
@ -1133,6 +1134,7 @@ class DomainAdmin(ListHeaderAdmin):
|
||||||
"_edit_domain": self.do_edit_domain,
|
"_edit_domain": self.do_edit_domain,
|
||||||
"_delete_domain": self.do_delete_domain,
|
"_delete_domain": self.do_delete_domain,
|
||||||
"_get_status": self.do_get_status,
|
"_get_status": self.do_get_status,
|
||||||
|
"_extend_expiration_date": self.do_extend_expiration_date
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check which action button was pressed and call the corresponding function
|
# Check which action button was pressed and call the corresponding function
|
||||||
|
@ -1143,6 +1145,25 @@ class DomainAdmin(ListHeaderAdmin):
|
||||||
# If no matching action button is found, return the super method
|
# If no matching action button is found, return the super method
|
||||||
return super().response_change(request, obj)
|
return super().response_change(request, obj)
|
||||||
|
|
||||||
|
def do_extend_expiration_date(self, request, obj):
|
||||||
|
if not isinstance(obj, Domain):
|
||||||
|
# Could be problematic if the type is similar,
|
||||||
|
# but not the same (same field/func names).
|
||||||
|
# We do not want to accidentally delete records.
|
||||||
|
self.message_user(request, "Object is not of type Domain", messages.ERROR)
|
||||||
|
return None
|
||||||
|
try:
|
||||||
|
obj.renew_domain(date_to_extend=date.today())
|
||||||
|
except Exception as err:
|
||||||
|
self.message_user(request, err, messages.ERROR)
|
||||||
|
else:
|
||||||
|
updated_domain = Domain.objects.filter(id=obj).get()
|
||||||
|
self.message_user(
|
||||||
|
request,
|
||||||
|
f"Successfully extended expiration date to {updated_domain.registry_expiration_date}",
|
||||||
|
)
|
||||||
|
return HttpResponseRedirect(".")
|
||||||
|
|
||||||
def do_delete_domain(self, request, obj):
|
def do_delete_domain(self, request, obj):
|
||||||
if not isinstance(obj, Domain):
|
if not isinstance(obj, Domain):
|
||||||
# Could be problematic if the type is similar,
|
# Could be problematic if the type is similar,
|
||||||
|
|
|
@ -239,22 +239,25 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
To update the expiration date, use renew_domain method."""
|
To update the expiration date, use renew_domain method."""
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
def renew_domain(self, length: int = 1, unit: epp.Unit = epp.Unit.YEAR):
|
def renew_domain(self, length: int = 1, date_to_extend = None, unit: epp.Unit = epp.Unit.YEAR):
|
||||||
"""
|
"""
|
||||||
Renew the domain to a length and unit of time relative to the current
|
Renew the domain to a length and unit of time relative to the current
|
||||||
expiration date.
|
expiration date.
|
||||||
|
|
||||||
Default length and unit of time are 1 year.
|
Default length and unit of time are 1 year.
|
||||||
"""
|
"""
|
||||||
# if no expiration date from registry, set to today
|
|
||||||
try:
|
# If no date is specified, grab the registry_expiration_date
|
||||||
cur_exp_date = self.registry_expiration_date
|
if date_to_extend is None:
|
||||||
except KeyError:
|
try:
|
||||||
logger.warning("current expiration date not set; setting to today")
|
date_to_extend = self.registry_expiration_date
|
||||||
cur_exp_date = date.today()
|
except KeyError:
|
||||||
|
# if no expiration date from registry, set it to today
|
||||||
|
logger.warning("current expiration date not set; setting to today")
|
||||||
|
date_to_extend = date.today()
|
||||||
|
|
||||||
# create RenewDomain request
|
# create RenewDomain request
|
||||||
request = commands.RenewDomain(name=self.name, cur_exp_date=cur_exp_date, period=epp.Period(length, unit))
|
request = commands.RenewDomain(name=self.name, cur_exp_date=date_to_extend, period=epp.Period(length, unit))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# update expiration date in registry, and set the updated
|
# update expiration date in registry, and set the updated
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue