Improve error handling for web upload of bad CSV
This commit is contained in:
parent
ad0a1aa44a
commit
e9a7bbe48c
2 changed files with 9 additions and 3 deletions
|
@ -54,10 +54,10 @@ class CSVImporter:
|
||||||
"Priority",
|
"Priority",
|
||||||
]
|
]
|
||||||
if header != expected:
|
if header != expected:
|
||||||
self.results.get("summaries").append(
|
self.errors.append(
|
||||||
f"Inbound data does not have expected columns.\nShould be: {expected}"
|
f"Inbound data does not have expected columns.\nShould be: {expected}"
|
||||||
)
|
)
|
||||||
return self.results
|
return
|
||||||
|
|
||||||
for row in csv_reader:
|
for row in csv_reader:
|
||||||
self.line_count += 1
|
self.line_count += 1
|
||||||
|
|
|
@ -24,6 +24,12 @@ def import_csv(request) -> HttpResponse:
|
||||||
|
|
||||||
importer = CSVImporter()
|
importer = CSVImporter()
|
||||||
results = importer.upsert(filepath)
|
results = importer.upsert(filepath)
|
||||||
ctx["results"] = results
|
|
||||||
|
ctx["results"] = None
|
||||||
|
if results:
|
||||||
|
ctx["results"] = results
|
||||||
|
else:
|
||||||
|
messages.error(request, "Could not parse provided CSV file.")
|
||||||
|
return redirect(reverse("todo:import_csv"))
|
||||||
|
|
||||||
return render(request, "todo/import_csv.html", context=ctx)
|
return render(request, "todo/import_csv.html", context=ctx)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue