diff --git a/src/registrar/admin.py b/src/registrar/admin.py index c87556a7a..d2b9ec4c7 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -1130,7 +1130,6 @@ class ContactAdmin(ListHeaderAdmin, ImportExportModelAdmin): class SeniorOfficialAdmin(ListHeaderAdmin): """Custom Senior Official Admin class.""" - # NOTE: these are just placeholders. Not part of ACs (haven't been defined yet). Update in future tickets. search_fields = ["first_name", "last_name", "email"] search_help_text = "Search by first name, last name or email." list_display = ["first_name", "last_name", "email", "federal_agency"] diff --git a/src/registrar/management/commands/load_senior_official_table.py b/src/registrar/management/commands/load_senior_official_table.py index 20278b170..cbfe479ea 100644 --- a/src/registrar/management/commands/load_senior_official_table.py +++ b/src/registrar/management/commands/load_senior_official_table.py @@ -3,7 +3,7 @@ import csv import logging import os from django.core.management import BaseCommand -from registrar.management.commands.utility.terminal_helper import TerminalHelper +from registrar.management.commands.utility.terminal_helper import TerminalHelper, TerminalColors from registrar.models import SeniorOfficial, FederalAgency @@ -50,7 +50,9 @@ class Command(BaseCommand): self.skipped_rows = [] with open(federal_cio_csv_path, "r") as requested_file: for row in csv.DictReader(requested_file): - # Note: the csv doesn't have a phone field, but we can try to pull one anyway. + # Note: the csv files we have received do not currently have a phone field. + # However, we will include it in our kwargs because that is the data we are mapping to + # and it seems best to check for the data even if it ends up not being there. so_kwargs = { "first_name": row.get("First Name"), "last_name": row.get("Last Name"), @@ -77,18 +79,18 @@ class Command(BaseCommand): else: self.skipped_rows.append(row) message = f"Skipping row (no data was found): {row}" - TerminalHelper.colorful_logger("WARNING", "YELLOW", message) + TerminalHelper.colorful_logger(logger.warning, TerminalColors.YELLOW, message) # Bulk create the SO fields if len(self.added_senior_officials) > 0: SeniorOfficial.objects.bulk_create(self.added_senior_officials) added_message = f"Added {len(self.added_senior_officials)} records" - TerminalHelper.colorful_logger("INFO", "OKGREEN", added_message) + TerminalHelper.colorful_logger(logger.info, TerminalColors.OKBLUE, added_message) if len(self.skipped_rows) > 0: skipped_message = f"Skipped {len(self.skipped_rows)} records" - TerminalHelper.colorful_logger("WARNING", "MAGENTA", skipped_message) + TerminalHelper.colorful_logger(logger.warning, TerminalColors.MAGENTA, skipped_message) def create_senior_official(self, so_kwargs): """Creates a senior official object from kwargs but does not add it to the DB""" @@ -113,9 +115,9 @@ class Command(BaseCommand): if not duplicate_field: self.added_senior_officials.append(new_so) message = f"Creating record: {record_display}" - TerminalHelper.colorful_logger("INFO", "OKCYAN", message) + TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, message) else: # if this field is a duplicate, don't do anything self.skipped_rows.append(new_so) message = f"Skipping add on duplicate record: {record_display}" - TerminalHelper.colorful_logger("WARNING", "YELLOW", message) + TerminalHelper.colorful_logger(logger.warning, TerminalColors.YELLOW, message) diff --git a/src/registrar/management/commands/populate_federal_agency_initials_and_fceb.py b/src/registrar/management/commands/populate_federal_agency_initials_and_fceb.py index 1ebd44efb..506405b78 100644 --- a/src/registrar/management/commands/populate_federal_agency_initials_and_fceb.py +++ b/src/registrar/management/commands/populate_federal_agency_initials_and_fceb.py @@ -3,7 +3,7 @@ import csv import logging import os from django.core.management import BaseCommand -from registrar.management.commands.utility.terminal_helper import TerminalHelper, PopulateScriptTemplate +from registrar.management.commands.utility.terminal_helper import TerminalHelper, PopulateScriptTemplate, TerminalColors from registrar.models import FederalAgency @@ -49,7 +49,7 @@ class Command(BaseCommand, PopulateScriptTemplate): record.is_fceb = False message = f"Updating {record} => initials: {initials} | is_fceb: {record.is_fceb}" - TerminalHelper.colorful_logger("INFO", "OKCYAN", message) + TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, message) def should_skip_record(self, record) -> bool: """Skip record update if there is no data for that particular agency""" diff --git a/src/registrar/management/commands/utility/terminal_helper.py b/src/registrar/management/commands/utility/terminal_helper.py index 939f5ed33..5ae788a65 100644 --- a/src/registrar/management/commands/utility/terminal_helper.py +++ b/src/registrar/management/commands/utility/terminal_helper.py @@ -317,6 +317,7 @@ class TerminalHelper: case _: logger.info(print_statement) + # TODO - "info_to_inspect" should be refactored to "prompt_message" @staticmethod def prompt_for_execution(system_exit_on_terminate: bool, info_to_inspect: str, prompt_title: str) -> bool: """Create to reduce code complexity. @@ -379,14 +380,18 @@ class TerminalHelper: """Adds some color to your log output. Args: - log_level: str -> Desired log level. ex: "INFO", "WARNING", "ERROR" + log_level: str | Logger.method -> Desired log level. ex: logger.info or "INFO" color: str | TerminalColors -> Output color. ex: TerminalColors.YELLOW or "YELLOW" message: str -> Message to display. """ - log_method = getattr(logger, log_level.lower(), logger.info) - if isinstance(color, str): - terminal_color = getattr(TerminalColors, color.upper(), TerminalColors.OKBLUE) + if isinstance(log_level, str) and hasattr(logger, log_level.lower()): + log_method = getattr(logger, log_level.lower(), logger.info) + else: + log_method = log_level + + if isinstance(color, str) and hasattr(TerminalColors, color.upper()): + terminal_color = getattr(TerminalColors, color.upper()) else: terminal_color = color