summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/views_survex.py36
-rw-r--r--templates/svxcavesingle404.html83
-rw-r--r--templates/svxfilecavelist.html4
-rw-r--r--urls.py6
4 files changed, 109 insertions, 20 deletions
diff --git a/core/views_survex.py b/core/views_survex.py
index 31b9583..89831e1 100644
--- a/core/views_survex.py
+++ b/core/views_survex.py
@@ -368,8 +368,8 @@ def survexcaveslist(request):
lsurvdirobj = [ ]
for lsubsvx in dsubsvx:
lsurvdirobj.append(("caves-1623/"+cavedir+"/"+subdir+"/"+lsubsvx, lsubsvx))
- if len(dsubsvx) > 1:
- subsurvdirs.append((lsurvdirobj[0], lsurvdirobj[1:]))
+ if len(dsubsvx) >= 1:
+ subsurvdirs.append((subdir,lsurvdirobj[0], lsurvdirobj[0:])) # list now includes the first item too
subdircaves.append((cavedir, (survdirobj[0], survdirobj[1:]), subsurvdirs))
# multifile caves
@@ -381,27 +381,31 @@ def survexcaveslist(request):
return render_to_response('svxfilecavelist.html', {'settings': settings, "onefilecaves":onefilecaves, "multifilecaves":multifilecaves, "subdircaves":subdircaves })
-
-# parsing all the survex files of a single cave and showing that it's consistent and can find all the files and people
-
-# currently not showing Explorers or Titles. link test from SurvexFile page is "dates and explorers"
-# Should explicity fix the kataster number thing.
def survexcavesingle(request, survex_cave):
- print(">>>", survex_cave)
+ '''parsing all the survex files of a single cave and showing that it's consistent and can find all
+ the files and people. Currently not showing Explorers or Titles. link test from SurvexFile page
+ is "dates and explorers". Should explicity fix the kataster number thing.
+ '''
+ sc = survex_cave
breload = False
if breload:
- parsers.survex.ReloadSurvexCave(survex_cave) # does not exit now, needs re-writing to work.
+ parsers.survex.ReloadSurvexCave(sc) # does not exit now, needs re-writing to work.
try:
- cave = Cave.objects.get(kataster_number=survex_cave)
- for survexdirectory in cave.survexdirectory_set.all:
- print(">>> >>>", survexdirectory, flush=True)
+ cave = Cave.objects.get(kataster_number=sc)
return render_to_response('svxcavesingle.html', {'settings': settings, "cave":cave })
except ObjectDoesNotExist:
# can get here if the survex file is in a directory labelled with unofficial number not kataster number.
- cave = Cave.objects.get(unofficial_number=survex_cave)
- return render_to_response('svxcavesingle.html', {'settings': settings, "cave":cave })
- # should produce useful error message for person trying to upload or manage survex files
+ # maybe - and _ mixed up, or CUCC-2017- instead of 2017-CUCC-, or CUCC2015DL01 ??
+ for unoff in [sc, sc.replace('-','_'), sc.replace('_','-')]:
+ try:
+ cave = Cave.objects.get(unofficial_number=unoff)
+ return render_to_response('svxcavesingle.html', {'settings': settings, "cave":cave })
+ except ObjectDoesNotExist:
+ continue
+ return render_to_response('svxcavesingle404.html', {'settings': settings, "cave":sc })
+
except:
- raise Http404()
+ return render_to_response('svxcavesingle404.html', {'settings': settings, "cave":sc })
+
diff --git a/templates/svxcavesingle404.html b/templates/svxcavesingle404.html
new file mode 100644
index 0000000..7409785
--- /dev/null
+++ b/templates/svxcavesingle404.html
@@ -0,0 +1,83 @@
+{% extends "base.html" %}
+{% load wiki_markup %}
+{% load link %}
+
+{% block title %}List of survex files{% endblock %}
+
+{% block content %}
+
+<h1>Surveys for cave - Cave not found</h1>
+
+<h3>Cave number looked for: '{{cave}}'</h3>
+<h3>kataster number like this not found</h3>
+<h3>unofficial number like this not found</h3>
+
+<p>
+{% for survexdirectory in cave.survexdirectory_set.all %}
+ <a href="#T_{{survexdirectory.primarysurvexfile.path}}">{{survexdirectory.path}}</a>
+{% endfor %}
+</p>
+
+{% for survexdirectory in cave.survexdirectory_set.all %}
+<h3 id="T_{{survexdirectory.primarysurvexfile.path}}">{{survexdirectory.path}}</h3>
+
+<table>
+<tr><th>Survex file</th><th>Block</th><th>Date</th><th>Explorers</th><th>length</th><th>Titles</th><th>Scans</th></tr>
+
+{% for survexfile in survexdirectory.survexfile_set.all %}
+<tr>
+ {% if survexfile.exists %}
+ <td rowspan="{{survexfile.survexblock_set.all|length|plusone}}">
+ {% else %}
+ <td class="survexnewfile" rowspan="{{survexfile.survexblock_set.all|length|plusone}}">
+ {% endif %}
+
+ {% ifequal survexfile survexdirectory.primarysurvexfile %}
+ <a href="{% url "svx" survexfile.path %}"><b>{{survexfile.path}}</b></a>
+ {% else %}
+ <a href="{% url "svx" survexfile.path %}">{{survexfile.path}}</a>
+ {% endifequal %}
+ </td>
+</tr>
+
+{% for survexblock in survexfile.survexblock_set.all %}
+<tr>
+ <td style="width:10 em">{{survexblock.name}}</td>
+ <td style="white-space:nowrap">
+ {% if survexblock.expedition %}
+ <a href="{{survexblock.expedition.get_absolute_url}}">{{survexblock.date|date:"D d M Y"}}</a>
+ {% else %}
+ <!--{{survexblock.date}}-->
+ {% endif %}
+ </td>
+
+ <td>
+ {% for personrole in survexblock.survexpersonrole_set.all %}
+ {% if personrole.personexpedition %}
+ <a href="{{personrole.personexpedition.get_absolute_url}}">{{personrole.personname}}</a>
+ {% else %}
+ {{personrole.personname}}
+ {% endif %}
+ {% endfor %}
+ </td>
+
+ <td style="padding-right: 3px; text-align:right">{{survexblock.legslength|stringformat:".1f"}}</td>
+
+ <td style="padding-left: 3px;">
+ {{survexblock.title}}
+ </td>
+
+ <td>
+ {% if survexblock.scansfolder %}
+ <b><a href="{{survexblock.scansfolder.get_absolute_url}}">{{survexblock.scansfolder.walletname}}</a></b>
+ {% endif %}
+ </td>
+</tr>
+{% endfor %}
+{% endfor %}
+</table>
+
+{% endfor %}
+
+{% endblock %}
+
diff --git a/templates/svxfilecavelist.html b/templates/svxfilecavelist.html
index 59f177f..f148b07 100644
--- a/templates/svxfilecavelist.html
+++ b/templates/svxfilecavelist.html
@@ -23,9 +23,9 @@
</td>
</tr>
-{% for primarycavefile, subcavefiles in subsurvdirs %}
+{% for name, primarycavefile, subcavefiles in subsurvdirs %}
<tr>
- <td><a href="{% url "svx" primarycavefile.0 %}">{{primarycavefile.1}}</a></td>
+ <td><a href="{% url "svx" primarycavefile.0 %}">{{name}}</a></td>
<td>
{% for cavepath, cavename in subcavefiles %}
<a href="{% url "svx" cavepath %}">{{cavename}}</a>
diff --git a/urls.py b/urls.py
index ebc73d2..ba5a67e 100644
--- a/urls.py
+++ b/urls.py
@@ -7,7 +7,7 @@ from django.contrib import admin
from django.urls import reverse, resolve
from troggle.core import views_other, views_caves, views_logbooks, views_statistics, views_survex, view_surveys
-#from troggle.core.views_other import logbook_entry_suggestions
+from troggle.core.views_other import troggle404
from troggle.core.views_caves import ent, prospecting_image
from troggle.core.views_statistics import pathsreport, stats
from flatpages import views as flatviews
@@ -25,6 +25,7 @@ which is vital to writing code for the webapp. So the URL dispatch is declarativ
The API urls return TSV or JSON and are new in July 2020.
"""
+#handler404 = 'troggle.core.views_other.troggle404' # can't get this to work. but 404.html is default anyway
# Many of these patterns do not work because troggle spent many years broken and we have
# not yet restored all the functions. Some may have never been fully implemented in
@@ -102,7 +103,7 @@ actualurlpatterns = [
url(r'^survexfile/(?P<survex_file>.*?)\.log$', views_survex.svxraw),
url(r'^survexfile/(?P<survex_file>.*?)\.err$', views_survex.err),
- url(r'^survexfile/caves', views_survex.survexcaveslist, name="survexcaveslist"),
+ url(r'^survexfile/caves/$', views_survex.survexcaveslist, name="survexcaveslist"),
url(r'^survexfile/(?P<survex_cave>.*)$', views_survex.survexcavesingle, name="survexcavessingle"),
url(r'^survexfileraw/(?P<survex_file>.*?)\.svx$', views_survex.svxraw, name="svxraw"),
@@ -146,6 +147,7 @@ actualurlpatterns = [
urlpatterns = [
url('^%s' % settings.DIR_ROOT, include(actualurlpatterns))
]
+
# When apache is running these prempt Django so Django never sees them.
# NEW apache configurations suggested as of 20 March 2021: