summaryrefslogtreecommitdiffstats
path: root/core/views/caves.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2023-09-30 22:09:18 +0300
committerPhilip Sargent <philip.sargent@gmail.com>2023-09-30 22:09:18 +0300
commitc88415688955041677f9951adb046a4c6008c3c2 (patch)
tree4749f202c3cd5555160c2492956bec3e58b7ee53 /core/views/caves.py
parent8dcae6437e354b2e44064692289b88c9d9a90ad1 (diff)
downloadtroggle-c88415688955041677f9951adb046a4c6008c3c2.tar.gz
troggle-c88415688955041677f9951adb046a4c6008c3c2.tar.bz2
troggle-c88415688955041677f9951adb046a4c6008c3c2.zip
fixed duplicate paths to same page
Diffstat (limited to 'core/views/caves.py')
-rw-r--r--core/views/caves.py35
1 files changed, 23 insertions, 12 deletions
diff --git a/core/views/caves.py b/core/views/caves.py
index a6c9659..e8db577 100644
--- a/core/views/caves.py
+++ b/core/views/caves.py
@@ -10,7 +10,7 @@ from pathlib import Path
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.http import HttpResponse, HttpResponseNotFound, HttpResponseRedirect, FileResponse
-from django.shortcuts import render
+from django.shortcuts import render, redirect
from django.urls import NoReverseMatch, reverse
import troggle.settings as settings
@@ -289,9 +289,27 @@ def rendercave(request, cave, slug, cave_id=""):
request, templatefile, context
) # crashes here with NoReverseMatch if url not set up for 'edit_cave' in urls.py
return r
+
+def cavepagefwd(request, karea=None, subpath=None):
+ """archaic, just send to the caves list page
+ """
+ return redirect("/caves")
-
-def cavepage(request, karea=None, subpath=None, slug=None):
+def caveslugfwd(request, slug):
+ """This is ass backwards. It would be better style to have the slug-identified request be the master, and have
+ other paths redirect to it, rather than what we have here.
+ Pending a change where we remove cave.url as a field and have an explicit fixed convention instead.
+ """
+ if slug:
+ Gcavelookup = GetCaveLookup()
+ if slug in Gcavelookup:
+ cave = Gcavelookup[slug]
+ else:
+ message = f"Failed to find cave from identifier given: {slug}."
+ return render(request, "errors/generic.html", {"message": message})
+ return redirect(f"/{cave.url}")
+
+def cavepage(request, karea=None, subpath=None):
"""Displays a cave description page
accessed by kataster area number specifically
OR
@@ -306,16 +324,9 @@ def cavepage(request, karea=None, subpath=None, slug=None):
There are also A LOT OF URLS to e.g. /1623/161/l/rl89a.htm which are IMAGES and real html files
in cave descriptions. These need to be handled HERE too (accident of history).
"""
- if slug:
- Gcavelookup = GetCaveLookup()
- if slug in Gcavelookup:
- cave = Gcavelookup[slug]
- return rendercave(request, cave, slug)
- else:
- message = f"Failed to find cave from identifier given: {slug}."
- return render(request, "errors/generic.html", {"message": message})
-
+
# lack of validation for karea, it could be any 4 digits.
+ # subpath has an initial /
kpath = karea + subpath
# print(f" ! cavepage:'{kpath}' kataster area:'{karea}' rest of path:'{subpath}'")
try: