From ea24a95532e0ff1d09c4df47e10c34e7548469f2 Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Thu, 6 Feb 2025 12:11:52 -0600 Subject: [PATCH 1/2] Update src/registrar/management/commands/create_federal_portfolio.py Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com> --- .../management/commands/create_federal_portfolio.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/registrar/management/commands/create_federal_portfolio.py b/src/registrar/management/commands/create_federal_portfolio.py index 263e68eaa..8228226b6 100644 --- a/src/registrar/management/commands/create_federal_portfolio.py +++ b/src/registrar/management/commands/create_federal_portfolio.py @@ -199,9 +199,9 @@ class Command(BaseCommand): domain_managers: set[int] = set() # Fetch all users with manager roles for the domains - managers = UserDomainRole.objects.filter(domain__in=domains, role=UserDomainRole.Roles.MANAGER).values_list( - "user", flat=True - ) + # select_related means that a db query will not be occur when you do user_domain_role.user + # Its similar to a set or dict in that it costs slightly more upfront in exchange for perf later + user_domain_roles = UserDomainRole.objects.select_related("user").filter(domain__in=domains, role=UserDomainRole.Roles.MANAGER) domain_managers.update(managers) invited_managers: set[str] = set() From 702ed9a24e41ea5a37a819d5713d806e749a1d9c Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Thu, 6 Feb 2025 12:12:35 -0600 Subject: [PATCH 2/2] Update src/registrar/management/commands/create_federal_portfolio.py Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com> --- .../management/commands/create_federal_portfolio.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/registrar/management/commands/create_federal_portfolio.py b/src/registrar/management/commands/create_federal_portfolio.py index 8228226b6..88122b919 100644 --- a/src/registrar/management/commands/create_federal_portfolio.py +++ b/src/registrar/management/commands/create_federal_portfolio.py @@ -207,11 +207,10 @@ class Command(BaseCommand): invited_managers: set[str] = set() # Get the emails of invited managers - for domain in domains: - domain_invitations = DomainInvitation.objects.filter( - domain=domain, status=DomainInvitation.DomainInvitationStatus.INVITED - ).values_list("email", flat=True) - invited_managers.update(domain_invitations) + domain_invitations = DomainInvitation.objects.filter( + domain__in=domains, status=DomainInvitation.DomainInvitationStatus.INVITED + ).values_list("email", flat=True) + invited_managers.update(domain_invitations) for id in domain_managers: try: