clean up of requesting entity

This commit is contained in:
David Kennedy 2025-01-16 14:24:43 -05:00
parent 6a49f9e373
commit 088140a37d
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
2 changed files with 2 additions and 79 deletions

View file

@ -116,44 +116,18 @@ class RequestingEntityForm(RegistrarForm):
) )
return name return name
# def full_clean(self):
# """Validation logic to remove the custom suborganization value before clean is triggered.
# Without this override, the form will throw an 'invalid option' error."""
# # Remove the custom other field before cleaning
# data = self.data.copy() if self.data else None
# # Remove the 'other' value from suborganization if it exists.
# # This is a special value that tracks if the user is requesting a new suborg.
# suborganization = self.data.get("portfolio_requesting_entity-sub_organization")
# if suborganization and "other" in suborganization:
# data["portfolio_requesting_entity-sub_organization"] = ""
# # Set the modified data back to the form
# self.data = data
# # Call the parent's full_clean method
# super().full_clean()
def full_clean(self): def full_clean(self):
"""Validation logic to temporarily remove the custom suborganization value before clean is triggered. """Validation logic to temporarily remove the custom suborganization value before clean is triggered.
Without this override, the form will throw an 'invalid option' error.""" Without this override, the form will throw an 'invalid option' error."""
logger.debug("full_clean")
# Ensure self.data is not None before proceeding # Ensure self.data is not None before proceeding
if self.data: if self.data:
# handle case where form has been submitted # handle case where form has been submitted
logger.debug("form was submitted")
# Create a copy of the data for manipulation # Create a copy of the data for manipulation
data = self.data.copy() data = self.data.copy()
# Retrieve sub_organization # Retrieve sub_organization and store in _original_suborganization
suborganization = data.get("portfolio_requesting_entity-sub_organization") suborganization = data.get("portfolio_requesting_entity-sub_organization")
logger.debug(f"suborganization submitted as {suborganization}")
# # Determine if "other" should be stored in _original_suborganization
# if not suborganization:
# logger.debug("suborg stored as other")
# self._original_suborganization = "other"
# else:
self._original_suborganization = suborganization self._original_suborganization = suborganization
# If the original value was "other", clear it for validation # If the original value was "other", clear it for validation
@ -166,69 +140,27 @@ class RequestingEntityForm(RegistrarForm):
# handle case of a GET # handle case of a GET
suborganization = None suborganization = None
if self.initial and "sub_organization" in self.initial: if self.initial and "sub_organization" in self.initial:
print("suborg in self.initial")
suborganization = self.initial["sub_organization"] suborganization = self.initial["sub_organization"]
print(self.initial["sub_organization"])
print(suborganization)
# Check if is_requesting_new_suborganization is True # Check if is_requesting_new_suborganization is True
is_requesting_new_suborganization = False is_requesting_new_suborganization = False
if self.initial and "is_requesting_new_suborganization" in self.initial: if self.initial and "is_requesting_new_suborganization" in self.initial:
# Call the method if it exists # Call the method if it exists
print(self.initial["is_requesting_new_suborganization"]())
is_requesting_new_suborganization = self.initial["is_requesting_new_suborganization"]() is_requesting_new_suborganization = self.initial["is_requesting_new_suborganization"]()
# Determine if "other" should be set # Determine if "other" should be set
if is_requesting_new_suborganization and suborganization is None: if is_requesting_new_suborganization and suborganization is None:
print("presetting to other")
self._original_suborganization = "other" self._original_suborganization = "other"
else: else:
self._original_suborganization = suborganization self._original_suborganization = suborganization
print("self.data does not exist")
print(self.initial)
# # Handle the initial GET request case
# self._original_suborganization = None
# Call the parent's full_clean method # Call the parent's full_clean method
super().full_clean() super().full_clean()
# Restore "other" if there are errors # Restore "other" if there are errors
if self.errors: if self.errors:
logger.debug(f"errors detected: {self.errors}; resetting original_sub_organization")
self.data["portfolio_requesting_entity-sub_organization"] = self._original_suborganization self.data["portfolio_requesting_entity-sub_organization"] = self._original_suborganization
# def clean(self):
# """Custom clean implementation to handle our desired logic flow for suborganization.
# Given that these fields often rely on eachother, we need to do this in the parent function."""
# cleaned_data = super().clean()
# # Do some custom error validation if the requesting entity is a suborg.
# # Otherwise, just validate as normal.
# suborganization = self.cleaned_data.get("sub_organization")
# is_requesting_new_suborganization = self.cleaned_data.get("is_requesting_new_suborganization")
# # Get the value of the yes/no checkbox from RequestingEntityYesNoForm.
# # Since self.data stores this as a string, we need to convert "True" => True.
# requesting_entity_is_suborganization = self.data.get(
# "portfolio_requesting_entity-requesting_entity_is_suborganization"
# )
# if requesting_entity_is_suborganization == "True":
# if is_requesting_new_suborganization:
# # Validate custom suborganization fields
# if not cleaned_data.get("requested_suborganization") and "requested_suborganization" not in self.errors:
# self.add_error("requested_suborganization", "Enter the name of your suborganization.")
# if not cleaned_data.get("suborganization_city"):
# self.add_error("suborganization_city", "Enter the city where your suborganization is located.")
# if not cleaned_data.get("suborganization_state_territory"):
# self.add_error(
# "suborganization_state_territory",
# "Select the state, territory, or military post where your suborganization is located.",
# )
# elif not suborganization:
# self.add_error("sub_organization", "Suborganization is required.")
# return cleaned_data
def clean(self): def clean(self):
"""Custom clean implementation to handle our desired logic flow for suborganization.""" """Custom clean implementation to handle our desired logic flow for suborganization."""
cleaned_data = super().clean() cleaned_data = super().clean()

View file

@ -368,7 +368,6 @@ class DomainRequestWizard(DomainRequestWizardPermissionView, TemplateView):
and from the database if `use_db` is True (provided that record exists). and from the database if `use_db` is True (provided that record exists).
An empty form will be provided if neither of those are true. An empty form will be provided if neither of those are true.
""" """
logger.debug(f"get_forms({step},{use_post},{use_db},{files})")
kwargs = { kwargs = {
"files": files, "files": files,
"prefix": self.steps.current, "prefix": self.steps.current,
@ -385,7 +384,6 @@ class DomainRequestWizard(DomainRequestWizardPermissionView, TemplateView):
for form in forms: for form in forms:
data = form.from_database(self.domain_request) if self.has_pk() else None data = form.from_database(self.domain_request) if self.has_pk() else None
logger.debug(data)
if use_post: if use_post:
instantiated.append(form(self.request.POST, **kwargs)) instantiated.append(form(self.request.POST, **kwargs))
elif use_db: elif use_db:
@ -562,13 +560,6 @@ class PortfolioDomainRequestWizard(DomainRequestWizard):
class RequestingEntity(DomainRequestWizard): class RequestingEntity(DomainRequestWizard):
template_name = "domain_request_requesting_entity.html" template_name = "domain_request_requesting_entity.html"
forms = [forms.RequestingEntityYesNoForm, forms.RequestingEntityForm] forms = [forms.RequestingEntityYesNoForm, forms.RequestingEntityForm]
#for debugging:
def get(self, request, *args, **kwargs):
"""This method handles GET requests."""
logger.debug("in get")
return super().get(request, *args, **kwargs)
def save(self, forms: list): def save(self, forms: list):
"""Override of save to clear or associate certain suborganization data """Override of save to clear or associate certain suborganization data