summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2021-04-01 20:08:57 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2021-04-01 20:08:57 +0100
commitf752f934b65d77e9e0f1fb7161d8ec8144fa8887 (patch)
treef4fbe5d42ec470939cd6c42259fe7f9264a607a0 /core
parent573dba47120ae462bd638014453d1688e9a578f3 (diff)
downloadtroggle-f752f934b65d77e9e0f1fb7161d8ec8144fa8887.tar.gz
troggle-f752f934b65d77e9e0f1fb7161d8ec8144fa8887.tar.bz2
troggle-f752f934b65d77e9e0f1fb7161d8ec8144fa8887.zip
fix cave description view
Diffstat (limited to 'core')
-rw-r--r--core/views/caves.py47
1 files changed, 35 insertions, 12 deletions
diff --git a/core/views/caves.py b/core/views/caves.py
index 390d8f7..2a1e726 100644
--- a/core/views/caves.py
+++ b/core/views/caves.py
@@ -137,6 +137,35 @@ def cave3d(request, cave_id=''):
# You can also set any other required headers: Cache-Control, etc.
return response
+def cavepage(request, karea, subpath):
+ '''Displays a cave description page'''
+ path = karea + subpath
+ print(" ! cavepage:'{}' kataster area:'{}' rest of path:'{}'".format(path, karea, subpath))
+
+ try:
+ cave = Cave.objects.get(url = path) # ideally this will be unique
+ slug = cave.slug()
+ print(" - cavepage:'{}' cave:'{}' cave-slug:'{}'".format(path, str(cave), slug))
+ #cave = Cave.objects.get(caveslug__slug = slug)
+ if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
+ return render(request,'nonpublic.html', {'instance': cave, 'cave_editable': slug})
+ else:
+ return render(request,'cave.html', {'cave': cave, 'cave_editable': slug})
+ except Cave.DoesNotExist:
+ return render(request, 'pagenotfound.html', {'path': path})
+ except Cave.MultipleObjectsReturned:
+ caves = Cave.objects.filter(url = path)
+ return render(request, 'svxcaveseveral.html', {'settings': settings, "caves":caves })
+ except:
+ return render(request, 'pagenotfound.html', {'path': path})
+
+def caveSlug(request, slug):
+ cave = Cave.objects.get(caveslug__slug = slug)
+ if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
+ return render(request,'nonpublic.html', {'instance': cave, 'cave_editable': slug})
+ else:
+ return render(request,'cave.html', {'cave': cave, 'cave_editable': slug})
+
def cave(request, cave_id='', offical_name=''):
try:
cave=getCave(cave_id)
@@ -173,6 +202,7 @@ def caveQMs(request, slug):
return render(request,'nonpublic.html', {'instance': cave})
else:
return render(request,'cave_qms.html', {'cave': cave})
+
def caveLogbook(request, slug):
cave = Cave.objects.get(caveslug__slug = slug)
if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
@@ -180,13 +210,6 @@ def caveLogbook(request, slug):
else:
return render(request,'cave_logbook.html', {'cave': cave})
-def caveSlug(request, slug):
- cave = Cave.objects.get(caveslug__slug = slug)
- if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
- return render(request,'nonpublic.html', {'instance': cave, 'cave_editable': slug})
- else:
- return render(request,'cave.html', {'cave': cave, 'cave_editable': slug})
-
@login_required_if_public
def edit_cave(request, slug=None):
if slug is not None:
@@ -323,7 +346,7 @@ def get_qms(request, caveslug):
cave = Cave.objects.get(caveslug__slug = caveslug)
return render(request,'options.html', {"items": [(e.entrance.slug(), e.entrance.slug()) for e in cave.entrances()]})
-areanames = [
+AREANAMES = [
#('', 'Location unclear'),
('1a', '1a &ndash; Plateau: around Top Camp'),
('1b', '1b &ndash; Western plateau near 182'),
@@ -351,11 +374,11 @@ areanames = [
def prospecting(request):
- #for key, name in areanames:
- # print key, Area.objects.get(short_name = key)
+ #for key, name in AREANAMES:
+ #print(key, Area.objects.get(short_name = key))
areas = []
- for key, name in areanames:
- a = Area.objects.get(short_name = key)
+ for key, name in AREANAMES:
+ a = Area.objects.get(short_name = key) # assumes unique
caves = list(a.cave_set.all())
caves.sort(key=caveKey)
areas.append((name, a, caves))