summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/views/survex.py23
-rw-r--r--parsers/survex.py4
-rw-r--r--templates/controlPanel.html1
-rw-r--r--templates/survexdir.html22
-rw-r--r--urls.py2
5 files changed, 51 insertions, 1 deletions
diff --git a/core/views/survex.py b/core/views/survex.py
index 3ab7dd9..7ac206a 100644
--- a/core/views/survex.py
+++ b/core/views/survex.py
@@ -18,7 +18,7 @@ from django.views.decorators.csrf import ensure_csrf_cookie
import troggle.settings as settings
from troggle.core.models.logbooks import LogbookEntry
from troggle.core.models.caves import Cave
-from troggle.core.models.survex import SurvexFile, SurvexBlock
+from troggle.core.models.survex import SurvexFile, SurvexBlock, SurvexDirectory
from troggle.core.models.wallets import Wallet
from troggle.core.utils import only_commit
from troggle.parsers.survex import parse_one_file
@@ -642,6 +642,27 @@ def survexcaveslist(request):
},
)
+def survexdir(request):
+ """report on all the SurvexDirectory objects
+ We are trying to find out how mismatches have crept in.
+ """
+
+ sds = SurvexDirectory.objects.all().order_by("cave")
+ for sd in sds:
+ sd.primarybad = True
+ if f"{sd.primarysurvexfile}".startswith(str(sd.path)):
+ sd.primarybad = False
+
+ sd.cavebad = True
+ munge = f"caves-{sd.cave}".lower()
+ if str(sd.path).lower().replace("/","-").startswith(munge):
+ sd.cavebad = False
+
+ sd.pathbad = True
+ if Path(settings.SURVEX_DATA, f"{sd.primarysurvexfile}.svx").is_file():
+ sd.pathbad = False
+ return render(request, "survexdir.html", {"survexdirs": sds})
+
def survexcavesingle(request, survex_cave):
"""parsing all the survex files of a single cave and showing that it's consistent and can find all
diff --git a/parsers/survex.py b/parsers/survex.py
index cebeb91..52ecc70 100644
--- a/parsers/survex.py
+++ b/parsers/survex.py
@@ -68,6 +68,8 @@ class SurvexLeg:
def IdentifyCave(cavepath):
"""Given a file path for a survex file, or a survex-block path,
return the cave object
+
+ This is clearly getting it badly wrong, see /survexdirs report.
"""
caveslist = GetCaveLookup()
if cavepath.lower() in caveslist:
@@ -1171,6 +1173,8 @@ class LoadingSurvex:
it sets the primarysurvexfile. This is correct as it should be set on the first file
in the directory, where first is defined by the *include ordering. Which is what we
are doing.
+
+ This does NOT set the current cave id in the SurvexDirectory, that happens later
"""
if not headpath:
return self.svxdirs[""]
diff --git a/templates/controlPanel.html b/templates/controlPanel.html
index bc71ae2..b50821c 100644
--- a/templates/controlPanel.html
+++ b/templates/controlPanel.html
@@ -25,6 +25,7 @@
<li><a href="/aliases/2023">Expoer name aliases</a> -short names recognised by troggle
<li><a href="/dataissues">Data Issues on Imports</a> - warnings and errors from the recent data import
<li><a href="/survexfilewild/2023">Wild survex files</a> - survex files contianing blocks with no related wallet
+<li><a href="/survexdir">Survex Directories</a> - Every Cave has an associated directory and a Primary survex file
<li><a href="/surveximport">Survex import record</a> - indented *include and begin/end tree<br /><li><a href="/survexdebug">Survex debug report</a> - warnings and details<br />
<li><a href="/therionissues">Therion Import issues</a> - warnings from the recent data import<br /><br />
<li><a href="/admin/">Django admin</a> - Deep magic access to all models and data
diff --git a/templates/survexdir.html b/templates/survexdir.html
new file mode 100644
index 0000000..7600077
--- /dev/null
+++ b/templates/survexdir.html
@@ -0,0 +1,22 @@
+<!-- svxcavesingle.html - this text visible because this template has been included -->
+{% extends "base.html" %}
+{% block title %}List of survex directories{% endblock %}
+{% block content %}
+
+{% autoescape off %}
+<h1>SurvexDirectory objects</h1>
+{% endautoescape %}
+
+
+<table>
+<tr><th>Cave</th><th>CaveID</th><th>Path</th><th>Primary</th></tr>
+{% for sd in survexdirs %}
+ <tr>
+ <td><span {% if sd.cavebad %} style="color:red" {% endif %}> {{sd.cave}}</span></td>
+ <td><em>{{sd.cave.id}}</em></td>
+ <td>{{sd.path}}</td>
+ <td><a href="/survexfile/{{sd.primarysurvexfile}}"><span {% if sd.pathbad %} style="color:red" {% endif %}>{{sd.primarysurvexfile}}.svx</span></a><span {% if sd.primarybad %} style="color:blue"> <b>MISMATCH</b> {% endif %}</span></td>
+ </tr>
+{% endfor %}
+</table>
+{% endblock %}
diff --git a/urls.py b/urls.py
index f9e1b84..513a1eb 100644
--- a/urls.py
+++ b/urls.py
@@ -182,6 +182,8 @@ trogglepatterns = [
path('controlpanel', controlpanel, name="controlpanel"),
# The survexfile pages
+ path('survexdir', survex.survexdir, name="survexdir"),
+
path('survexfile', survex.survexcavesingle, {'survex_cave': ''}, name="survexcavessingle"),
path('survexfile/', survex.survexcavesingle, {'survex_cave': ''}, name="survexcavessingle"),
path('survexfile/caves', survex.survexcaveslist, name="survexcaveslist"),