Add PR suggestions

This commit is contained in:
zandercymatics 2024-08-06 14:30:37 -06:00
parent f87e71c10a
commit bf9169d22d
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 20 additions and 14 deletions

View file

@ -1130,7 +1130,6 @@ class ContactAdmin(ListHeaderAdmin, ImportExportModelAdmin):
class SeniorOfficialAdmin(ListHeaderAdmin): class SeniorOfficialAdmin(ListHeaderAdmin):
"""Custom Senior Official Admin class.""" """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_fields = ["first_name", "last_name", "email"]
search_help_text = "Search by first name, last name or email." search_help_text = "Search by first name, last name or email."
list_display = ["first_name", "last_name", "email", "federal_agency"] list_display = ["first_name", "last_name", "email", "federal_agency"]

View file

@ -3,7 +3,7 @@ import csv
import logging import logging
import os import os
from django.core.management import BaseCommand 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 from registrar.models import SeniorOfficial, FederalAgency
@ -50,7 +50,9 @@ class Command(BaseCommand):
self.skipped_rows = [] self.skipped_rows = []
with open(federal_cio_csv_path, "r") as requested_file: with open(federal_cio_csv_path, "r") as requested_file:
for row in csv.DictReader(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 = { so_kwargs = {
"first_name": row.get("First Name"), "first_name": row.get("First Name"),
"last_name": row.get("Last Name"), "last_name": row.get("Last Name"),
@ -77,18 +79,18 @@ class Command(BaseCommand):
else: else:
self.skipped_rows.append(row) self.skipped_rows.append(row)
message = f"Skipping row (no data was found): {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 # Bulk create the SO fields
if len(self.added_senior_officials) > 0: if len(self.added_senior_officials) > 0:
SeniorOfficial.objects.bulk_create(self.added_senior_officials) SeniorOfficial.objects.bulk_create(self.added_senior_officials)
added_message = f"Added {len(self.added_senior_officials)} records" 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: if len(self.skipped_rows) > 0:
skipped_message = f"Skipped {len(self.skipped_rows)} records" 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): def create_senior_official(self, so_kwargs):
"""Creates a senior official object from kwargs but does not add it to the DB""" """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: if not duplicate_field:
self.added_senior_officials.append(new_so) self.added_senior_officials.append(new_so)
message = f"Creating record: {record_display}" message = f"Creating record: {record_display}"
TerminalHelper.colorful_logger("INFO", "OKCYAN", message) TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, message)
else: else:
# if this field is a duplicate, don't do anything # if this field is a duplicate, don't do anything
self.skipped_rows.append(new_so) self.skipped_rows.append(new_so)
message = f"Skipping add on duplicate record: {record_display}" message = f"Skipping add on duplicate record: {record_display}"
TerminalHelper.colorful_logger("WARNING", "YELLOW", message) TerminalHelper.colorful_logger(logger.warning, TerminalColors.YELLOW, message)

View file

@ -3,7 +3,7 @@ import csv
import logging import logging
import os import os
from django.core.management import BaseCommand 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 from registrar.models import FederalAgency
@ -49,7 +49,7 @@ class Command(BaseCommand, PopulateScriptTemplate):
record.is_fceb = False record.is_fceb = False
message = f"Updating {record} => initials: {initials} | is_fceb: {record.is_fceb}" 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: def should_skip_record(self, record) -> bool:
"""Skip record update if there is no data for that particular agency""" """Skip record update if there is no data for that particular agency"""

View file

@ -317,6 +317,7 @@ class TerminalHelper:
case _: case _:
logger.info(print_statement) logger.info(print_statement)
# TODO - "info_to_inspect" should be refactored to "prompt_message"
@staticmethod @staticmethod
def prompt_for_execution(system_exit_on_terminate: bool, info_to_inspect: str, prompt_title: str) -> bool: def prompt_for_execution(system_exit_on_terminate: bool, info_to_inspect: str, prompt_title: str) -> bool:
"""Create to reduce code complexity. """Create to reduce code complexity.
@ -379,14 +380,18 @@ class TerminalHelper:
"""Adds some color to your log output. """Adds some color to your log output.
Args: 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" color: str | TerminalColors -> Output color. ex: TerminalColors.YELLOW or "YELLOW"
message: str -> Message to display. message: str -> Message to display.
""" """
log_method = getattr(logger, log_level.lower(), logger.info)
if isinstance(color, str): if isinstance(log_level, str) and hasattr(logger, log_level.lower()):
terminal_color = getattr(TerminalColors, color.upper(), TerminalColors.OKBLUE) 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: else:
terminal_color = color terminal_color = color