First round of responses to PR feedback

This commit is contained in:
Scot Hacker 2019-03-11 23:59:07 -07:00
parent c30ec49d02
commit cc017a8695
2 changed files with 11 additions and 13 deletions

View file

@ -10,7 +10,7 @@ from todo.operations.csv_importer import CSVImporter
class Command(BaseCommand):
help = """Import specifically formatted CSV file containing incoming tasks to be loaded.
For specfic format of inbound CSV, see data/import_example.csv.
For documentation on field formats and required fields, see README.md.
For documentation on upsert logic and required fields, see README.md.
"""
def add_arguments(self, parser: CommandParser) -> None:
@ -22,10 +22,11 @@ class Command(BaseCommand):
def handle(self, *args: Any, **options: Any) -> None:
# Need a file to proceed
if not options.get("file"):
print("Sorry, we need a file name to work from.")
print("Sorry, we need a filename to work from.")
sys.exit(1)
else:
filepath = str(options.get("file"))
if not Path(filepath).exists():
print(f"Sorry, couldn't find file: {filepath}")
sys.exit(1)

View file

@ -44,7 +44,7 @@ class CSVImporter:
# DI check: Do we have expected header row?
header = csv_reader.fieldnames
expected = ['Title', 'Group', 'Task List', 'Created By', 'Created Date', 'Due Date', 'Completed', 'Assigned To', 'Note', 'Priority']
if not header == expected:
if header != expected:
self.results.get('summaries').append(f"Inbound data does not have expected columns.\nShould be: {expected}")
return self.results
@ -93,11 +93,8 @@ class CSVImporter:
msg = f"Missing required task creator."
row_errors.append(msg)
created_by = get_user_model().objects.filter(username=row.get("Created By"))
if created_by.exists():
creator = created_by.first()
else:
creator = None
creator = get_user_model().objects.filter(username=row.get("Created By")).first()
if not creator:
msg = f"Invalid task creator {row.get('Created By')}"
row_errors.append(msg)