diff --git a/src/registrar/admin.py b/src/registrar/admin.py index c3ba18bbe..efafbcfc4 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -2029,13 +2029,12 @@ class DomainAdmin(ListHeaderAdmin): def change_view(self, request, object_id): logger.info("Timing change_view on domain") - with Timer(): - # If the analyst was recently editing a domain page, - # delete any associated session values - if "analyst_action" in request.session: - del request.session["analyst_action"] - del request.session["analyst_action_location"] - return super().change_view(request, object_id) + # If the analyst was recently editing a domain page, + # delete any associated session values + if "analyst_action" in request.session: + del request.session["analyst_action"] + del request.session["analyst_action_location"] + return super().change_view(request, object_id) def has_change_permission(self, request, obj=None): # Fixes a bug wherein users which are only is_staff diff --git a/src/registrar/migrations/0091_alter_contact_email_alter_contact_first_name_and_more.py b/src/registrar/migrations/0091_alter_contact_email_alter_contact_first_name_and_more.py index a35cc6a22..a3b8fe0e9 100644 --- a/src/registrar/migrations/0091_alter_contact_email_alter_contact_first_name_and_more.py +++ b/src/registrar/migrations/0091_alter_contact_email_alter_contact_first_name_and_more.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.10 on 2024-05-06 20:21 +# Generated by Django 4.2.10 on 2024-05-07 20:13 from django.db import migrations, models import phonenumber_field.modelfields @@ -92,6 +92,10 @@ class Migration(migrations.Migration): model_name="domain", index=models.Index(fields=["name"], name="registrar_d_name_5b1956_idx"), ), + migrations.AddIndex( + model_name="domaininvitation", + index=models.Index(fields=["status"], name="registrar_d_status_e84571_idx"), + ), migrations.AddIndex( model_name="domainrequest", index=models.Index(fields=["requested_domain"], name="registrar_d_request_6894eb_idx"), diff --git a/src/registrar/models/domain_invitation.py b/src/registrar/models/domain_invitation.py index 12082142d..39473c0be 100644 --- a/src/registrar/models/domain_invitation.py +++ b/src/registrar/models/domain_invitation.py @@ -15,6 +15,12 @@ logger = logging.getLogger(__name__) class DomainInvitation(TimeStampedModel): + class Meta: + """Contains meta information about this class""" + indexes = [ + models.Index(fields=["status"]), + ] + # Constants for status field class DomainInvitationStatus(models.TextChoices): INVITED = "invited", "Invited" diff --git a/src/registrar/models/user.py b/src/registrar/models/user.py index 7e82ee1c1..e630366a4 100644 --- a/src/registrar/models/user.py +++ b/src/registrar/models/user.py @@ -24,6 +24,13 @@ class User(AbstractUser): but can be customized later. """ + class Meta: + """Contains meta information about this class""" + indexes = [ + models.Index(fields=["username"]), + models.Index(fields=["email"]), + ] + class VerificationTypeChoices(models.TextChoices): """ Users achieve access to our system in a few different ways. diff --git a/src/registrar/utility/csv_export.py b/src/registrar/utility/csv_export.py index 83754f574..abd91c0ba 100644 --- a/src/registrar/utility/csv_export.py +++ b/src/registrar/utility/csv_export.py @@ -380,111 +380,106 @@ def write_csv_for_requests( def export_data_type_to_csv(csv_file): """All domains report with extra columns""" logger.info("Timing export_data_type_to_csv") - with Timer(): - writer = csv.writer(csv_file) - # define columns to include in export - columns = [ - "Domain name", - "Status", - "Expiration date", - "Domain type", - "Agency", - "Organization name", - "City", - "State", - "AO", - "AO email", - "Security contact email", - # For domain manager we are pass it in as a parameter below in write_body - ] + writer = csv.writer(csv_file) + # define columns to include in export + columns = [ + "Domain name", + "Status", + "Expiration date", + "Domain type", + "Agency", + "Organization name", + "City", + "State", + "AO", + "AO email", + "Security contact email", + # For domain manager we are pass it in as a parameter below in write_body + ] - # Coalesce is used to replace federal_type of None with ZZZZZ - sort_fields = [ - "organization_type", - Coalesce("federal_type", Value("ZZZZZ")), - "federal_agency", - "domain__name", - ] - filter_condition = { - "domain__state__in": [ - Domain.State.READY, - Domain.State.DNS_NEEDED, - Domain.State.ON_HOLD, - ], - } - write_csv_for_domains( - writer, columns, sort_fields, filter_condition, should_get_domain_managers=True, should_write_header=True - ) + # Coalesce is used to replace federal_type of None with ZZZZZ + sort_fields = [ + "organization_type", + Coalesce("federal_type", Value("ZZZZZ")), + "federal_agency", + "domain__name", + ] + filter_condition = { + "domain__state__in": [ + Domain.State.READY, + Domain.State.DNS_NEEDED, + Domain.State.ON_HOLD, + ], + } + write_csv_for_domains( + writer, columns, sort_fields, filter_condition, should_get_domain_managers=True, should_write_header=True + ) def export_data_full_to_csv(csv_file): """All domains report""" - logger.info("Timing def export_data_full_to_csv") - with Timer(): - writer = csv.writer(csv_file) - # define columns to include in export - columns = [ - "Domain name", - "Domain type", - "Agency", - "Organization name", - "City", - "State", - "Security contact email", - ] - # Coalesce is used to replace federal_type of None with ZZZZZ - sort_fields = [ - "organization_type", - Coalesce("federal_type", Value("ZZZZZ")), - "federal_agency", - "domain__name", - ] - filter_condition = { - "domain__state__in": [ - Domain.State.READY, - Domain.State.DNS_NEEDED, - Domain.State.ON_HOLD, - ], - } - write_csv_for_domains( - writer, columns, sort_fields, filter_condition, should_get_domain_managers=False, should_write_header=True - ) + writer = csv.writer(csv_file) + # define columns to include in export + columns = [ + "Domain name", + "Domain type", + "Agency", + "Organization name", + "City", + "State", + "Security contact email", + ] + # Coalesce is used to replace federal_type of None with ZZZZZ + sort_fields = [ + "organization_type", + Coalesce("federal_type", Value("ZZZZZ")), + "federal_agency", + "domain__name", + ] + filter_condition = { + "domain__state__in": [ + Domain.State.READY, + Domain.State.DNS_NEEDED, + Domain.State.ON_HOLD, + ], + } + write_csv_for_domains( + writer, columns, sort_fields, filter_condition, should_get_domain_managers=False, should_write_header=True + ) def export_data_federal_to_csv(csv_file): """Federal domains report""" - logger.info("Timing def export_data_federal_to_csv") - with Timer(): - writer = csv.writer(csv_file) - # define columns to include in export - columns = [ - "Domain name", - "Domain type", - "Agency", - "Organization name", - "City", - "State", - "Security contact email", - ] - # Coalesce is used to replace federal_type of None with ZZZZZ - sort_fields = [ - "organization_type", - Coalesce("federal_type", Value("ZZZZZ")), - "federal_agency", - "domain__name", - ] - filter_condition = { - "organization_type__icontains": "federal", - "domain__state__in": [ - Domain.State.READY, - Domain.State.DNS_NEEDED, - Domain.State.ON_HOLD, - ], - } - write_csv_for_domains( - writer, columns, sort_fields, filter_condition, should_get_domain_managers=False, should_write_header=True - ) + writer = csv.writer(csv_file) + # define columns to include in export + columns = [ + "Domain name", + "Domain type", + "Agency", + "Organization name", + "City", + "State", + "Security contact email", + ] + # Coalesce is used to replace federal_type of None with ZZZZZ + sort_fields = [ + "organization_type", + Coalesce("federal_type", Value("ZZZZZ")), + "federal_agency", + "domain__name", + ] + filter_condition = { + "organization_type__icontains": "federal", + "domain__state__in": [ + Domain.State.READY, + Domain.State.DNS_NEEDED, + Domain.State.ON_HOLD, + ], + } + write_csv_for_domains( + writer, columns, sort_fields, filter_condition, should_get_domain_managers=False, should_write_header=True + ) def get_default_start_date():