diff options
-rw-r--r-- | core/views/survex.py | 23 | ||||
-rw-r--r-- | parsers/survex.py | 4 | ||||
-rw-r--r-- | templates/controlPanel.html | 1 | ||||
-rw-r--r-- | templates/survexdir.html | 22 | ||||
-rw-r--r-- | urls.py | 2 |
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 %} @@ -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"), |