This commit is contained in:
Rachid Mrad 2024-10-02 19:17:11 -04:00
parent 6dd4132a29
commit d723825b12
No known key found for this signature in database

View file

@ -2014,21 +2014,14 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportModelAdmin):
return (obj, should_proceed)
obj_is_not_approved = obj.status != models.DomainRequest.DomainRequestStatus.APPROVED
original_obj_is_not_approved = original_obj.status != models.DomainRequest.DomainRequestStatus.APPROVED
if obj_is_not_approved and not obj.domain_is_not_active():
# If an admin tried to set an approved domain request to
# another status and the related domain is already
# active (READY), shortcut the action and throw a friendly
# error message. This action would still not go through
# shortcut or not as the rules are duplicated on the model,
# but the error would be an ugly Django error screen.
error_message = "This action is not permitted. The domain is already active."
if original_obj_is_not_approved and Domain.objects.filter(name=original_obj.requested_domain.name).exists():
# REDUNDANT CHECK:
# This action (approving a request when the domain is active)
# would still not go through check or not as the rules are
# REDUNDANT CHECK / ERROR SCREEN AVOIDANCE:
# This action (moving a request from approved to
# another status when the domain is already active (READY),
# would still not go through even without this check as the rules are
# duplicated in the model and the error is raised from the model.
error_message = FSMDomainRequestError.get_error_message(FSMErrorCodes.APPROVE_DOMAIN_IN_USE)
# This avoids an ugly Django error screen.
error_message = "This action is not permitted. The domain is already active."
elif obj.status == models.DomainRequest.DomainRequestStatus.REJECTED and not obj.rejection_reason:
# This condition should never be triggered.
# The opposite of this condition is acceptable (rejected -> other status and rejection_reason)