summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/views/scans.py23
-rw-r--r--templates/base.html2
-rw-r--r--urls.py19
3 files changed, 34 insertions, 10 deletions
diff --git a/core/views/scans.py b/core/views/scans.py
index 770b925..61d988e 100644
--- a/core/views/scans.py
+++ b/core/views/scans.py
@@ -20,7 +20,26 @@ by looking inside the file before being served.
need to check if inavlid query string is invalid, or produces multiple replies
and render a user-friendly error page.
'''
-
+
+
+def walletslistyear(request, year):
+ '''Page which displays a list of all the wallets in a specific year
+ '''
+ if year < 1976 or year > 2050:
+ return render(request, 'errors/generic.html', {'message': 'Year out of range. Must be between 1976 and 2050'})
+ else:
+ year = str(year)
+ return render(request, 'errors/generic.html', {'message': 'not implemented yet'})
+
+def walletslistcave(request, caveid):
+ '''Page which displays a list of all the wallets attached to a specific cave, e.g. '1623-204'
+ '''
+ g = GetCaveLookup()
+ if caveid not in g:
+ return render(request, 'errors/generic.html', {'message': f'Cave identifier not recognised:"{caveid}"'})
+
+ return render(request, 'errors/generic.html', {'message': 'not implemented yet'})
+
def oldwallet(request, path):
'''Now called only for non-standard wallet structures for pre-2000 wallets
'''
@@ -59,7 +78,7 @@ def scansingle(request, path, file):
return render(request, 'errors/generic.html', {'message': message})
-def allwallets(request):
+def allscans(request):
'''Returns all the wallets in the system, we would like to use
the Django queryset SQL optimisation https://docs.djangoproject.com/en/3.2/ref/models/querysets/#prefetch-related
to get the related singlescan and survexblock objects but that requires rewriting this to do the query on those, not on
diff --git a/templates/base.html b/templates/base.html
index 2661123..8f3f562 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -31,7 +31,7 @@
<a href="{% url "survexcavessingle" "359" %}">359</a> |
<a href="/survexfile/">Survex</a> |
<a href="{% url "survexcaveslist" %}">All Survex</a> |
- <a href="{% url "allwallets" %}">Scans</a> |
+ <a href="{% url "allscans" %}">Scans</a> |
<a href="{% url "scanupload" '2022:01' %}">Upload Scans</a> |
<a href="{% url "dwgallfiles" %}">Drawings</a> |
<a href="{% url "dwgupload" %}">Upload Drawings</a> |
diff --git a/urls.py b/urls.py
index e02c4f0..7dba6f6 100644
--- a/urls.py
+++ b/urls.py
@@ -8,7 +8,7 @@ from django.contrib import auth
from django.urls import path, reverse, resolve
from troggle.core.views import statistics, survex
-from troggle.core.views.scans import scansingle, allwallets, cavewallets
+from troggle.core.views.scans import scansingle, allscans, cavewallets, walletslistyear, walletslistcave
from troggle.core.views.drawings import dwgallfiles, dwgfilesingle
from troggle.core.views.uploads import dwgupload, scanupload, photoupload
from troggle.core.views.other import troggle404, frontpage, todos, controlpanel, frontpage
@@ -164,13 +164,18 @@ trogglepatterns = [
path('survexfile/<path:survex_cave>', survex.survexcavesingle, name="survexcavessingle"),
-# The survey scans in the wallets. This short-cuts SCANS_URL which is not actually used anywhere!
- path('survey_scans/', allwallets, name="allwallets"),
- path('survey_scans/<path:path>/', scanupload, name="singlewallet"), # replaced singlewallet()
- path('survey_scans/<path:path>/<file>', scansingle, name="scansingle"), # works, but html href goes direct to /expofiles/ too
- re_path(r'^cave/scans/(?P<cave_id>[^/]+)$', cavewallets, name="cavewallets"), # like allwallets, but for just one cave
+# The survey scans in the wallets. This short-cuts SCANS_URL which is not used anymore and is defunct
+ path('survey_scans/', allscans, name="allscans"), # all the scans in all wallets
+ path('survey_scans/<path:path>/', scanupload, name="singlewallet"), # replaced singlewallet()
+ path('survey_scans/<path:path>/<file>', scansingle, name="scansingle"), # works, but html href goes direct to /expofiles/ too
+ path('cave/scans/<slug:caveid>', cavewallets, name="cavewallets"), # like allscans, but for just one cave
+
+# The data about the wallets themselves, not the scans inside tehm
+ path('wallets/cave/<slug:caveid>', walletslistcave, name="walletslistcave"), # wallets that are for a specific cave, an identifier
+ path('wallets/year/<int:year>', walletslistyear, name="walletslistyear"), # wallets that are for a specific year, as an integer '1985'
+
-# The tunnel and therion drawings files pages
+# The tunnel and therion drawings files pageswalletslistcave
path('dwgfiles', dwgallfiles, name="dwgallfiles"),
path('dwgfiles/', dwgallfiles, name="dwgallfiles"),
path('dwgdataraw/<path:path>', dwgfilesingle, name="dwgfilesingle"),