This commit is contained in:
zandercymatics 2024-02-26 11:23:40 -07:00
parent d416ea5138
commit 79d3c1821d
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 12 additions and 14 deletions

View file

@ -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)

View file

@ -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