2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-17 13:27:08 +00:00

Shorter, faster default caves index list

This commit is contained in:
2025-07-28 18:17:54 +02:00
parent c82ed82aba
commit 89e38397b9
5 changed files with 168 additions and 64 deletions

View File

@@ -205,8 +205,48 @@ def getnotablecaves():
print(notablecaves) print(notablecaves)
return notablecaves return notablecaves
def caveindex(request): def caveindex(request):
caves1623 = list(Cave.objects.filter(areacode="1623"))
caves1626 = list(Cave.objects.filter(areacode="1626"))
caves1623.sort(key=caveKey)
caves1626.sort(key=caveKey)
allcaves = caves1623 + caves1626
caves_this_year = []
for c in allcaves:
if c.unofficial_number.startswith(current_expo()):
caves_this_year.append(c)
caves_this_year.sort(key=caveKey)
caves_last_year = []
for c in allcaves:
last_year = str(int(current_expo()) - 1)
if c.unofficial_number.startswith(last_year):
caves_last_year.append(c)
caves_this_year.sort(key=caveKey)
caves_previous_year = []
for c in allcaves:
previous_year = str(int(current_expo()) - 2)
if c.unofficial_number.startswith(previous_year):
caves_previous_year.append(c)
caves_previous_year.sort(key=caveKey)
return render(
request,
"caveindex.html",
{"caves1623": caves1623,
"caves1626": caves1626,
"caves1627": "",
"caves1624": "",
"notablecaves": getnotablecaves(),
"caves_this_year": caves_this_year,
"caves_last_year": caves_last_year,
"caves_previous_year": caves_previous_year,
"cavepage": True, "year": current_expo()},
)
def cavesall(request):
"""Should use Django order-by for lazy sorting, not here. But only after we have a proper slug system in place for Caves """Should use Django order-by for lazy sorting, not here. But only after we have a proper slug system in place for Caves
""" """
# allcaves = Cave.objects.all() # allcaves = Cave.objects.all()
@@ -230,23 +270,15 @@ def caveindex(request):
caves_this_year.append(c) caves_this_year.append(c)
caves_this_year.sort(key=caveKey) caves_this_year.sort(key=caveKey)
caves_last_year = []
for c in allcaves:
last_year = str(int(current_expo()) - 1)
if c.unofficial_number.startswith(last_year):
caves_last_year.append(c)
caves_this_year.sort(key=caveKey)
return render( return render(
request, request,
"caveindex.html", "cavesallindex.html",
{"caves1623": caves1623, {"caves1623": caves1623,
"caves1626": caves1626, "caves1626": caves1626,
"caves1627": caves1627, "caves1627": caves1627,
"caves1624": caves1624, "caves1624": caves1624,
"notablecaves": getnotablecaves(), "notablecaves": getnotablecaves(),
"caves_this_year": caves_this_year, "caves_this_year": caves_this_year,
"caves_last_year": caves_last_year,
"cavepage": True, "year": current_expo()}, "cavepage": True, "year": current_expo()},
) )

View File

@@ -0,0 +1,5 @@
Red star <span style="color: red">*</span> against a name indicates that no survex file is explicitly associated with the cave<br />
Blue star <span style="color: blue">*</span> against a name indicates that no survex file is explicitly associated with the cave but it is marked as 'fully explored'<br />
Blue triangle <span style="color: #43C6DB">&#x25BC;</span> against a name indicates that the cave is 'pending' creation properly.<br />
Orange triangle <span style="color: orange">&#x25B2;</span> against a name indicates that the cave has no Entrance (and is not 'pending').<br />
Black triangle <span style="color: black">&#x25B2;</span> against a name indicates that the cave has an Entrance, but no entrances have valid located survey stations.

View File

@@ -1,10 +1,10 @@
{% extends "cavebase.html" %} {% extends "cavebase.html" %}
{% block title %}Cave Index{% endblock %} {% block title %}Recent Caves Index{% endblock %}
{% block content %} {% block content %}
<h1>Cave Index</h1> <h1>Recent Caves Index</h1>
<h3>Notable caves</h3> <h3>Notable caves</h3>
<ul> <ul>
{% for cave in notablecaves %} {% for cave in notablecaves %}
@@ -20,11 +20,9 @@
{% endfor %} {% endfor %}
</ul> </ul>
Red star <span style="color: red">*</span> against a name indicates that no survex file is explicitly associated with the cave<br /> {% include 'cave_red_star.html' %}
Blue star <span style="color: blue">*</span> against a name indicates that no survex file is explicitly associated with the cave but it is marked as 'fully explored'<br /> <p>
Blue triangle <span style="color: #43C6DB">&#x25BC;</span> against a name indicates that the cave is 'pending' creation properly.<br /> See <em><a href="/cavesall">All Caves</a></em> for all the caves in areas 1623, 1626, 1624, 1627
Orange triangle <span style="color: orange">&#x25B2;</span> against a name indicates that the cave has no Entrance (and is not 'pending').<br />
Black triangle <span style="color: black">&#x25B2;</span> against a name indicates that the cave has an Entrance, but no entrances have valid located survey stations.
<p style="text-align:right"> <p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br> <a href="{% url "newcave" %}">New Cave</a><br>
@@ -51,59 +49,16 @@ Black triangle <span style="color: black">&#x25B2;</span> against a name indicat
</table> </table>
</div> </div>
<h3>1623</h3> <h3>Previous year's caves</h3>
<div style="column-count: 3;"> <div style="column-count: 3;">
<table class="searchable"> <table class="searchable">
{% for cave in caves1623 %} {% for cave in caves_previous_year %}
{% include 'cavelist_columns.html' %} {% include 'cavelist_columns.html' %}
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
<p>
<p style="text-align:right"> See <em><a href="/cavesall">All Caves</a></em> for all the caves in areas 1623, 1626, 1624, 1627
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>1626</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1626 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>1627</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1627 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>1624</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1624 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right"> <p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br> <a href="{% url "newcave" %}">New Cave</a><br>

View File

@@ -0,0 +1,110 @@
{% extends "cavebase.html" %}
{% block title %}Cave Index{% endblock %}
{% block content %}
<h1>Cave Index</h1>
<h3>Notable caves</h3>
<ul>
{% for cave in notablecaves %}
<li> {{ cave.areacode }} <a href="/{{ cave.url }}">
{% if cave.kataster_number %}
{{ cave.kataster_number }} <em>{{cave.official_name|safe}}</em></a>
{% if cave.unofficial_number %}
({{cave.unofficial_number }})
{% endif %}
{% else %}
{{cave.unofficial_number }} <em>{{cave.official_name|safe}}</em></a>
{% endif %}
{% endfor %}
</ul>
{% include 'cave_red_star.html' %}
<p>Go to <a href="/caves">Recent Caves</a> for a shorter list of recent caves.
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>This year's caves</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves_this_year %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<h3>Last year's caves</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves_last_year %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<h3>1623</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1623 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>1626</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1626 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>1627</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1627 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
<h3>1624</h3>
<div style="column-count: 3;">
<table class="searchable">
{% for cave in caves1624 %}
{% include 'cavelist_columns.html' %}
{% endfor %}
</table>
</div>
<p style="text-align:right">
<a href="{% url "newcave" %}">New Cave</a><br>
<a href="/noinfo/cave-number-index">Cave Number Index - kept updated</a>
</p>
{% endblock %}

View File

@@ -11,6 +11,7 @@ from troggle.core.views.caves import (
cave3d, cave3d,
cave_debug, cave_debug,
caveindex, caveindex,
cavesall,
cavepage, cavepage,
caveQMs, caveQMs,
caveslist, caveslist,
@@ -157,6 +158,7 @@ trogglepatterns = [
path('people_ids', people_ids, name="people_ids"), path('people_ids', people_ids, name="people_ids"),
path('folk_export', folk_export, name="folk_export"), path('folk_export', folk_export, name="folk_export"),
path('caveslist', caveslist, name="caveslist"), path('caveslist', caveslist, name="caveslist"),
path('cavesall', cavesall, name="cavesall"),
path('entrances', entranceindex, name="entranceindex"), path('entrances', entranceindex, name="entranceindex"),
path('enttags', entrancetags, name="entrancetags"), path('enttags', entrancetags, name="entrancetags"),