From 578f02db2def16e18967af1ff947657a1a5efe11 Mon Sep 17 00:00:00 2001
From: Philip Sargent <philip.sargent@gmail.com>
Date: Thu, 2 Feb 2023 11:19:46 +0000
Subject: [PATCH] Better diagnostics from bad slug error

---
 core/views/caves.py | 10 +++++-----
 core/views/scans.py |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/core/views/caves.py b/core/views/caves.py
index 168e076..c970f52 100644
--- a/core/views/caves.py
+++ b/core/views/caves.py
@@ -312,7 +312,7 @@ def caveEntrance(request, slug):
     try:
         cave = Cave.objects.get(caveslug__slug=slug)
     except:
-        return render(request, "errors/badslug.html", {"badslug": slug})
+        return render(request, "errors/badslug.html", {"badslug": f"{slug} - from caveEntrance()"})
 
     if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated:
         return render(request, "nonpublic.html", {"instance": cave})
@@ -333,7 +333,7 @@ def edit_cave(request, path="", slug=None):
         try:
             cave = Cave.objects.get(caveslug__slug=slug)
         except:
-            return render(request, "errors/badslug.html", {"badslug": slug})
+            return render(request, "errors/badslug.html", {"badslug": f"{slug} - from edit_cave()"})
     else:
         cave = Cave()
     if request.POST:
@@ -412,7 +412,7 @@ def edit_entrance(request, path="", caveslug=None, slug=None):
     try:
         cave = Cave.objects.get(caveslug__slug=caveslug)
     except:
-        return render(request, "errors/badslug.html", {"badslug": caveslug})
+        return render(request, "errors/badslug.html", {"badslug": f"{slug} {caveslug} - from edit_entrance()"})
 
     if slug:
         entrance = Entrance.objects.get(entranceslug__slug=slug)
@@ -504,7 +504,7 @@ def get_entrances(request, caveslug):
     try:
         cave = Cave.objects.get(caveslug__slug=caveslug)
     except:
-        return render(request, "errors/badslug.html", {"badslug": caveslug})
+        return render(request, "errors/badslug.html", {"badslug": f"{caveslug} - from get_entrances()"})
     return render(
         request, "options.html", {"items": [(e.entrance.slug(), e.entrance.slug()) for e in cave.entrances()]}
     )
@@ -518,7 +518,7 @@ def caveQMs(request, slug):
     try:
         cave = Cave.objects.get(caveslug__slug=slug)
     except:
-        return render(request, "errors/badslug.html", {"badslug": slug})
+        return render(request, "errors/badslug.html", {"badslug": f"{slug} - from caveQMs()"})
 
     if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated:
         return render(request, "nonpublic.html", {"instance": cave})
diff --git a/core/views/scans.py b/core/views/scans.py
index aed38ee..9555b3f 100644
--- a/core/views/scans.py
+++ b/core/views/scans.py
@@ -217,7 +217,7 @@ def cavewallets(request, caveid):
     if caveid in Gcavelookup:
         cave = Gcavelookup[caveid]
     else:
-        return render(request, "errors/badslug.html", {"badslug": caveid})
+        return render(request, "errors/badslug.html", {"badslug": f"{caveid} - from cavewallets()"})
 
     # remove duplication. Sorting is done in the template
     # But this only gets wallets which have survex files attached..