Update web/core/views.py
This commit is contained in:
+6
-8
@@ -329,7 +329,7 @@ def entry_delete(request, entry_id):
|
||||
@login_required
|
||||
@user_passes_test(is_admin)
|
||||
def import_wizard(request):
|
||||
# Safety: expected header list
|
||||
# Safety: expected header list (matches DB/order the importer expects)
|
||||
_EXPECTED_HEADERS = [
|
||||
"Subject", "Illustration", "Application", "Scripture", "Source",
|
||||
"Talk Title", "Talk Number", "Code", "Date", "Date Edited",
|
||||
@@ -341,9 +341,10 @@ if request.method == "POST":
|
||||
try:
|
||||
raw = form.cleaned_data["file"].read()
|
||||
|
||||
import io, csv as _csv
|
||||
import io
|
||||
import csv as _csv
|
||||
|
||||
# Decode once (BOM-safe)
|
||||
# Decode once (BOM‑safe)
|
||||
text = raw.decode("utf-8-sig", errors="replace")
|
||||
|
||||
# Try to sniff a dialect; fall back to Excel-style CSV
|
||||
@@ -358,11 +359,7 @@ if request.method == "POST":
|
||||
if not rows:
|
||||
raise ValueError("The CSV file appears to be empty.")
|
||||
|
||||
# Expected header (DB field order)
|
||||
expected = [
|
||||
"Subject", "Illustration", "Application", "Scripture", "Source",
|
||||
"Talk Title", "Talk Number", "Code", "Date", "Date Edited",
|
||||
]
|
||||
expected = _EXPECTED_HEADERS
|
||||
expected_norm = [h.lower() for h in expected]
|
||||
|
||||
# Header cleaner: fixes r:"Talk Title", stray quotes, spaces, case
|
||||
@@ -425,6 +422,7 @@ if request.method == "POST":
|
||||
messages.error(request, f"Import failed: {e}")
|
||||
else:
|
||||
form = ImportForm()
|
||||
|
||||
return render(request, "import_wizard.html", {"form": form})
|
||||
|
||||
@login_required
|
||||
|
||||
Reference in New Issue
Block a user