Cleanup part 2

This commit is contained in:
zandercymatics 2025-01-07 15:12:25 -07:00
parent 9e49ca4eac
commit 8f3f7f14f2
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 14 additions and 21 deletions

View file

@ -275,17 +275,12 @@ class Command(BaseCommand):
# Set suborg info # Set suborg info
domain_request.sub_organization = suborgs.get(domain_request.organization_name, None) domain_request.sub_organization = suborgs.get(domain_request.organization_name, None)
if domain_request.sub_organization is None: if domain_request.sub_organization is None:
clean_organization_name = None domain_request.requested_suborganization = normalize_string(
if isinstance(domain_request.organization_name, str): domain_request.organization_name, lowercase=False
clean_organization_name = normalize_string(domain_request.organization_name, lowercase=False) )
domain_request.suborganization_city = normalize_string(domain_request.city, lowercase=False)
clean_city = None
if isinstance(domain_request.city, str):
clean_city = normalize_string(domain_request.city, lowercase=False)
domain_request.requested_suborganization = clean_organization_name
domain_request.suborganization_city = clean_city
domain_request.suborganization_state_territory = domain_request.state_territory domain_request.suborganization_state_territory = domain_request.state_territory
self.updated_portfolios.add(portfolio) self.updated_portfolios.add(portfolio)
DomainRequest.objects.bulk_update( DomainRequest.objects.bulk_update(
@ -322,8 +317,7 @@ class Command(BaseCommand):
suborgs = Suborganization.objects.filter(portfolio=portfolio).in_bulk(field_name="name") suborgs = Suborganization.objects.filter(portfolio=portfolio).in_bulk(field_name="name")
for domain_info in domain_infos: for domain_info in domain_infos:
domain_info.portfolio = portfolio domain_info.portfolio = portfolio
if domain_info.organization_name in suborgs: domain_info.sub_organization = suborgs.get(domain_info.organization_name, None)
domain_info.sub_organization = suborgs.get(domain_info.organization_name)
DomainInformation.objects.bulk_update(domain_infos, ["portfolio", "sub_organization"]) DomainInformation.objects.bulk_update(domain_infos, ["portfolio", "sub_organization"])
message = f"Added portfolio '{portfolio}' to {len(domain_infos)} domains." message = f"Added portfolio '{portfolio}' to {len(domain_infos)} domains."

View file

@ -8,7 +8,7 @@ from django_fsm import FSMField, transition # type: ignore
from django.utils import timezone from django.utils import timezone
from registrar.models.domain import Domain from registrar.models.domain import Domain
from registrar.models.federal_agency import FederalAgency from registrar.models.federal_agency import FederalAgency
from registrar.models.utility.generic_helper import CreateOrUpdateOrganizationTypeHelper, normalize_string from registrar.models.utility.generic_helper import CreateOrUpdateOrganizationTypeHelper
from registrar.utility.errors import FSMDomainRequestError, FSMErrorCodes from registrar.utility.errors import FSMDomainRequestError, FSMErrorCodes
from registrar.utility.constants import BranchChoices from registrar.utility.constants import BranchChoices
from auditlog.models import LogEntry from auditlog.models import LogEntry

View file

@ -347,5 +347,9 @@ def value_of_attribute(obj, attribute_name: str):
def normalize_string(string_to_normalize: str, lowercase=True) -> str: def normalize_string(string_to_normalize: str, lowercase=True) -> str:
"""Normalizes a given string. Returns a string without extra spaces, in all lowercase.""" """Normalizes a given string. Returns a string without extra spaces, in all lowercase."""
if not isinstance(string_to_normalize, str):
logger.error(f"normalize_string => {string_to_normalize} is not type str.")
return string_to_normalize
new_string = " ".join(string_to_normalize.split()) new_string = " ".join(string_to_normalize.split())
return new_string.lower() if lowercase else new_string return new_string.lower() if lowercase else new_string

View file

@ -1521,10 +1521,7 @@ class TestCreateFederalPortfolio(TestCase):
def test_handle_portfolio_requests_sync_federal_agency(self): def test_handle_portfolio_requests_sync_federal_agency(self):
"""Test that federal agency is cleared when org name matches portfolio name""" """Test that federal agency is cleared when org name matches portfolio name"""
# Create a portfolio. This script skips over "started" # Create a portfolio. This script skips over "started"
portfolio = Portfolio.objects.create( portfolio = Portfolio.objects.create(organization_name="Sugarcane", creator=self.user)
organization_name="Sugarcane",
creator=self.user
)
# Create a domain request with matching org name # Create a domain request with matching org name
matching_request = completed_domain_request( matching_request = completed_domain_request(
name="matching.gov", name="matching.gov",
@ -1532,7 +1529,7 @@ class TestCreateFederalPortfolio(TestCase):
generic_org_type=DomainRequest.OrganizationChoices.FEDERAL, generic_org_type=DomainRequest.OrganizationChoices.FEDERAL,
federal_agency=self.federal_agency_2, federal_agency=self.federal_agency_2,
user=self.user, user=self.user,
portfolio=portfolio portfolio=portfolio,
) )
# Create a request not in started (no change should occur) # Create a request not in started (no change should occur)
@ -1545,9 +1542,7 @@ class TestCreateFederalPortfolio(TestCase):
) )
self.run_create_federal_portfolio(agency_name="Sugarcane", parse_requests=True) self.run_create_federal_portfolio(agency_name="Sugarcane", parse_requests=True)
self.run_create_federal_portfolio( self.run_create_federal_portfolio(agency_name="Test Federal Agency", parse_requests=True)
agency_name="Test Federal Agency", parse_requests=True
)
# Refresh from db # Refresh from db
matching_request.refresh_from_db() matching_request.refresh_from_db()