diff --git a/src/registrar/admin.py b/src/registrar/admin.py index 2797501ac..160b906ab 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -1864,7 +1864,7 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportModelAdmin): if status_changed: _, status_value = changes.get("status") if status_value: - entry["status"] = DomainRequest.DomainRequestStatus(status_value).label + entry["status"] = DomainRequest.DomainRequestStatus.get_status_label(status_value) # Handle rejection reason change if rejection_reason_changed: @@ -1873,11 +1873,13 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportModelAdmin): entry["rejection_reason"] = ( "" if rejection_reason_value == "None" - else DomainRequest.RejectionReasons(rejection_reason_value).label + else DomainRequest.RejectionReasons.get_rejection_reason_label(rejection_reason_value) ) # Handle case where rejection reason changed but not status if not status_changed: - entry["status"] = DomainRequest.DomainRequestStatus.REJECTED.label + entry["status"] = DomainRequest.DomainRequestStatus.get_status_label( + DomainRequest.DomainRequestStatus.REJECTED + ) # Handle action needed reason change if action_needed_reason_changed: @@ -1886,11 +1888,15 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportModelAdmin): entry["action_needed_reason"] = ( "" if action_needed_reason_value == "None" - else DomainRequest.ActionNeededReasons(action_needed_reason_value).label + else DomainRequest.ActionNeededReasons.get_action_needed_reason_label( + action_needed_reason_value + ) ) # Handle case where action needed reason changed but not status if not status_changed: - entry["status"] = DomainRequest.DomainRequestStatus.ACTION_NEEDED.label + entry["status"] = DomainRequest.DomainRequestStatus.get_status_label( + DomainRequest.DomainRequestStatus.ACTION_NEEDED + ) # Add actor and timestamp information entry["actor"] = log_entry.actor diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index f01dbe66f..4f306f403 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -256,6 +256,11 @@ class DomainRequest(TimeStampedModel): NAMING_REQUIREMENTS = "naming_not_met", "Naming requirements not met" OTHER = "other", "Other/Unspecified" + @classmethod + def get_rejection_reason_label(cls, rejection_reason: str): + """Returns the associated label for a given rejection reason""" + return cls(rejection_reason).label if rejection_reason else None + class ActionNeededReasons(models.TextChoices): """Defines common action needed reasons for domain requests""" @@ -265,6 +270,11 @@ class DomainRequest(TimeStampedModel): BAD_NAME = ("bad_name", "Doesn’t meet naming requirements") OTHER = ("other", "Other (no auto-email sent)") + @classmethod + def get_action_needed_reason_label(cls, action_needed_reason: str): + """Returns the associated label for a given action needed reason""" + return cls(action_needed_reason).label if action_needed_reason else None + # #### Internal fields about the domain request ##### status = FSMField( choices=DomainRequestStatus.choices, # possible states as an array of constants diff --git a/src/registrar/templates/django/admin/includes/detail_table_fieldset.html b/src/registrar/templates/django/admin/includes/detail_table_fieldset.html index d6e0e3530..7edf403f4 100644 --- a/src/registrar/templates/django/admin/includes/detail_table_fieldset.html +++ b/src/registrar/templates/django/admin/includes/detail_table_fieldset.html @@ -86,20 +86,20 @@ This is using a custom implementation fieldset.html (see admin/fieldset.html)