From 79d3c1821d838094fd900d483a015ae965109654 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:23:40 -0700 Subject: [PATCH] Cleanup --- src/registrar/admin.py | 17 ++++++++++++----- src/registrar/models/domain_application.py | 9 --------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/registrar/admin.py b/src/registrar/admin.py index e68943272..ec6b625fb 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -824,6 +824,10 @@ class DomainApplicationAdminForm(forms.ModelForm): status = cleaned_data.get("status") investigator = cleaned_data.get("investigator") + # Get the old status + initial_status = self.initial.get("status", None) + + # We only care about investigator when in these statuses checked_statuses = [ DomainApplication.ApplicationStatus.APPROVED, DomainApplication.ApplicationStatus.IN_REVIEW, @@ -831,11 +835,13 @@ class DomainApplicationAdminForm(forms.ModelForm): DomainApplication.ApplicationStatus.REJECTED, DomainApplication.ApplicationStatus.INELIGIBLE ] - # Checks the "investigators" field for validity. - # That field must obey certain conditions when an application is approved. - # Will call "add_error" if any issues are found. - #if status in checked_statuses: - #self._check_for_valid_investigator(investigator) + + # If a status change occured, check for validity + if status != initial_status and status in checked_statuses: + # Checks the "investigators" field for validity. + # That field must obey certain conditions when an application is approved. + # Will call "add_error" if any issues are found. + self._check_for_valid_investigator(investigator) return cleaned_data @@ -850,6 +856,7 @@ class DomainApplicationAdminForm(forms.ModelForm): # Check if an investigator is assigned. No approval is possible without one. error_message = None if investigator is None: + # Lets grab the error message from a common location error_message = ApplicationStatusError.get_error_message(FSMErrorCodes.NO_INVESTIGATOR) elif not investigator.is_staff: error_message = ApplicationStatusError.get_error_message(FSMErrorCodes.INVESTIGATOR_NOT_STAFF) diff --git a/src/registrar/models/domain_application.py b/src/registrar/models/domain_application.py index 19f82101e..3337c8c7a 100644 --- a/src/registrar/models/domain_application.py +++ b/src/registrar/models/domain_application.py @@ -739,15 +739,6 @@ class DomainApplication(TimeStampedModel): if Domain.objects.filter(name=self.requested_domain.name).exists(): raise ApplicationStatusError(code=FSMErrorCodes.APPROVE_DOMAIN_IN_USE) - # Check if an investigator is assigned. No approval is possible without one. - if self.investigator is None: - raise ApplicationStatusError(code=FSMErrorCodes.APPROVE_NO_INVESTIGATOR) - - # Investigators must be staff users. - # This is handled elsewhere, but we should check here as a precaution. - if not self.investigator.is_staff: - raise ApplicationStatusError(code=FSMErrorCodes.APPROVE_INVESTIGATOR_NOT_STAFF) - # == Create the domain and related components == # created_domain = Domain.objects.create(name=self.requested_domain.name) self.approved_domain = created_domain