2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2024-11-21 23:01:52 +00:00

enhancing list of wallets on cave description page

This commit is contained in:
Philip Sargent 2023-12-23 18:37:20 +00:00
parent ebfab4da45
commit 96b034d026
5 changed files with 40 additions and 19 deletions

View File

@ -62,6 +62,20 @@ class CaveAndEntrance(models.Model):
# class CaveSlug(models.Model):
# moved to models/logbooks.py to avoid cyclic import problem. No I don't know why either.
def get_cave_leniently(caveid):
try:
c = getCave(caveid)
if c:
return c
except:
# print(f"get_cave_leniently FAIL {caveid}")
try:
c = getCave("1623-"+caveid)
if c:
return c
except:
return None
class Cave(TroggleModel):
# (far) too much here perhaps,
areacode = models.CharField(max_length=4, blank=True, null=True) # could use models.IntegerChoices

View File

@ -11,7 +11,7 @@ from django.db import models
from django.urls import reverse
from troggle.core.models.troggle import DataIssue
from troggle.core.views.caves import get_cave_leniently
from troggle.core.models.caves import get_cave_leniently
# from troggle.core.models.survex import SurvexBlock
# from troggle.core.models.troggle import DataIssue # circular import. Hmm
@ -133,6 +133,9 @@ class Wallet(models.Model):
# we do not use URL_ROOT any more.
return reverse("singlewallet", kwargs={"path": re.sub("#", "%23", self.walletname)})
def get_url(self):
return f"/walletedit/{self.walletname}".replace('#', ':')
def get_json(self):
"""Read the JSON file for the wallet and do stuff
Do it every time it is queried, to be sure the result is fresh.. well, no.
@ -150,7 +153,7 @@ class Wallet(models.Model):
fp = Path(self.fpath)
wname = fp.name
wyear = fp.parent.name
wurl = f"/walletedit/{self.walletname}".replace('#', ':')
wurl = self.get_url()
if len(wyear) != 4 or len(wname) !=6:
# no contents.json for old-style wallets

View File

@ -15,8 +15,9 @@ from django.urls import NoReverseMatch, reverse
import troggle.settings as settings
from troggle.core.forms import CaveAndEntranceFormSet, CaveForm, EntranceForm, EntranceLetterForm
from troggle.core.models.caves import Cave, CaveAndEntrance, Entrance, GetCaveLookup
from troggle.core.models.caves import Cave, CaveAndEntrance, Entrance, GetCaveLookup, get_cave_leniently
from troggle.core.models.logbooks import CaveSlug, QM
from troggle.core.models.wallets import Wallet
from troggle.core.utils import write_and_commit
from troggle.core.views import expo
from troggle.settings import CAVEDESCRIPTIONS, ENTRANCEDESCRIPTIONS
@ -40,19 +41,7 @@ todo = """
https://zerotobyte.com/how-to-use-django-select-related-and-prefetch-related/
"""
def get_cave_leniently(caveid):
try:
c = getCave(caveid)
if c:
return c
except:
# print(f"get_cave_leniently FAIL {caveid}")
try:
c = getCave("1623-"+caveid)
if c:
return c
except:
return None
def getCaves(cave_id):
@ -294,6 +283,8 @@ def rendercave(request, cave, slug, cave_id=""):
# see design docum in troggle/templates/cave.html
# see rendercave() in troggle/core/views/caves.py
templatefile = "cave.html"
wallets = Wallet.objects.filter(caves=cave)
if not cave_id:
cave_id = slug # cave.unofficial_number
@ -305,6 +296,7 @@ def rendercave(request, cave, slug, cave_id=""):
"cave_id": cave_id,
"svxstem": str(svxstem),
"svx3d": svx3d,
"wallets": wallets,
}
# Do not catch any exceptions here: propagate up to caller

View File

@ -121,8 +121,15 @@ Nope, it is not useful, removing it... Philip S.
<a href="{% url 'caveQMs' cave_id|safe %}">QM page for {{ cave_id|safe }}</a>
{% endif %}
<h2>Scanned survey notes</h2>
<a href="{% url "cavewallets" cave_id %}">{{ cave_id|safe }}</a> (if any)
{% if wallets %}
<h2>Wallets: scanned survey notes</h2>
There are <a href="{% url "cavewallets" cave_id %}">{{wallets|length}} wallets</a> with data for this cave:<br />
{% for w in wallets %}
<a href="{{w.get_url}}">{{w.walletname}}</a>
{% endfor %}
{% endif %}
{% endif %}
{% if cave.notes %}

View File

@ -20,11 +20,16 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c
{% for otherexpedition in expeditions %}
| <a <a href="/wallets/year/{{ otherexpedition.year }}">{{otherexpedition.year}}</a>
{% endfor %}</ul></ul>
{% include 'wallet_table.html' %}
<p>Note that names in italics are copied from the related survex file block name.
<br />
<p>Total underground survey length: {{length_ug|floatformat:"1g"}} m<br />
Note that this is for <em>all the wallets</em> listed above, which includes those which may not be directly relevant to what you are looking for.
Note that this is for <em>all the wallets</em> listed above, which includes those which are surveys of different caves not just {{cave}}.
<br />
If you want accurate cave lengths for {{cave}}, go to the <a href="/survexfile/{{cave.survex_file}}">primary survex file</a> for this cave
and click on the "Run 'cavern' on this SVX file" button at the bottom of the page.
<br />
<table width=95%>
<tr><th>Wallet</th><th width=13%>Wallet Date</th><th>Wallet Name</th><th width=25%>People</th><th>Scans</th><th>Survex blocks</th><th>Drawings using these scans</th></tr>