New index to all troggle pages

This commit is contained in:
Philip Sargent 2020-07-27 01:42:09 +01:00
parent d58924d32d
commit 25b323fe15
20 changed files with 190 additions and 161 deletions

View File

@ -27,7 +27,7 @@ You've never been to expo? This is what you need to know before packing to come:
<h2>Second steps</h2>
This is what it's all about:
<ul>
<li><a href="intro.htm">Introduction to expo</a> - a 40-year institution</li>
<li><a href="../intro.htm">Introduction to expo</a> - a 40-year institution</li>
<li><a href="primer.html">Primer</a> - For new expedition members - the caves we are exploring</li>
<li><a href="survey/index.htm">Surveying</a> - Why and how we survey caves. (important!)</li>
<li><a href="survey/what.htm">Surveying - beginners guide</a> - Jump to: Beginners guide.</li>

View File

@ -12,22 +12,13 @@
<h2>NOTES - collected here</h2>
<h3>Historic "Future" Developments: Preamble</h3>
<p><em>Assumptions</em> (points to necessarily agree upon)
<ol>
<li>Let's NOT try to design a generic catalogue for storing all kind of data about caves of the whole world, intended for every kind of user (sports, exploration, science). Let's just settle for a generic framework. Let geeks in individual countries or individual communities write their tools operating within this framework.
<li>Let's try make it available for the layman, but still well-playable for the geeks.
<li>Let's rely on already existing, popular technologies. Let's keep it open source and multiplatform. Let's try not to reinvent the wheel.
<li>Let's not assume everyone has an Internet connection while working with their data.
<li>Let's version-control as much as possible.
<li>Let's support i18n - let's use UTF-8 everywhere and cater for data in many languages(entrance names, cave descriptions, location descriptions etc.)
</ol>
<tt><em>Everything here is not current - this page just records a lot of unfinished ideas.
Most people will not want to read this at all. This is for speleosoftwarearcheologists only.</em>
</tt>
<p>Two page preliminary design document for <a href="../../documents/caca_arch2.pdf">'caca' (Cave Catalogue) rev.2 2013-07-26</a> by Wookey (copied from http://wookware.org/software/cavearchive/caca_arch2.pdf)
<h2>The data management system conventions bit</h2>
@ -36,7 +27,6 @@ Most people will not want to read this at all. This is for speleosoftwarearcheol
<ul>
<li>Structure</li>
<li>Info for each cave &ndash; automatically generated by [perl script] <tt>make-indxal4.pl</tt></li>
<li>Contents lists &amp; relative links for multi-article publications like journals. Complicated by expo articles being in a separate hierarchy from journals.</li>
<li>Translations</li>
<li>Other people's work - the noinfo hierarchy.</li>
@ -308,8 +298,10 @@ Storage:
Before then we manually maintained <a href="../computing/update.html">a list of updates</a> which are now only of historical interest.
<p>A history of the expo website and software was published in Cambridge Underground 1996. A copy of this article <a href="../c21bs.html">Taking Expo Bullshit into the 21st Century</a> is archived here.
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trognotes.html">Troggle notes</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -10,9 +10,11 @@
<h1>Troggle Data Model (python)</h1>
<h3>Troggle data architecture</h3>
Auto-generated on 3 April 2020. (Omitting all the 'Meta' sub-classes.)<br>
DPhoto object removed 15 May 2020<code><pre><span style="color: green">
# This is an auto-generated Django model module.
Auto-generated on 3 April 2020 with <var>troggle$ python3 manage.py inspectdb</var>. (Omitting all the 'Meta' sub-classes.)<br>
Several classes have been edited out of this file between then and 25 July 2020 as they have been deleted as troggle has been tidied up.
<p>All the classes below inherit from the django class (models.Model) and are thereby made persistent in the database. All <a href="https://docs.djangoproject.com/en/1.11/ref/models/fields/">persistent instance variables</a> are defined with e.g. "models.BooleanField()" types which is why they look so strange to a normal python programmer.
<p>See <a href="/admin/doc/models/">the online auto-documentation</a> for the current set of core objects and their instance variables and foreign keys (anything below with "models.ForeignKey" in the type field is a foreign key. <br>
This webpage is manually maintained and may be out of date.<code><pre><span style="color: green"># This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
# * Rearrange models' order
# * Make sure each model has one field with primary_key=True
@ -74,33 +76,6 @@ from django.db import models
entrance_letter = models.CharField(max_length=20, blank=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescription</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
new_since_parsing = models.BooleanField()
non_public = models.BooleanField()
short_name = models.CharField(unique=True, max_length=50)
long_name = models.CharField(max_length=200, blank=True)
description = models.TextField(blank=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescriptionLinkedEntrances</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
cavedescription_id = models.IntegerField()
<span style="color:blue">entrance</span> = models.<span style="color:blue">ForeignKey</span> ('CoreEntrance')
<span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescriptionLinkedQms</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
cavedescription_id = models.IntegerField()
qm_id = models.IntegerField()
<span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescriptionLinkedSubcaves</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
cavedescription_id = models.IntegerField()
newsubcave_id = models.IntegerField()
<span style="color: lime">class</span> <span style="color:blue"><b>CoreCaveslug</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
cave_id = models.IntegerField()
@ -185,21 +160,6 @@ from django.db import models
entry_type = models.CharField(max_length=50, blank=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreNewsubcave</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
new_since_parsing = models.BooleanField()
non_public = models.BooleanField()
name = models.CharField(unique=True, max_length=200)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreOthercavename</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
new_since_parsing = models.BooleanField()
non_public = models.BooleanField()
name = models.CharField(max_length=160)
<span style="color:blue">cave</span> = models.<span style="color:blue">ForeignKey</span> (CoreCave)
<span style="color: lime">class</span> <span style="color:blue"><b>CorePerson</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
new_since_parsing = models.BooleanField()
@ -253,19 +213,6 @@ from django.db import models
comment = models.TextField(blank=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreScannedimage</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
new_since_parsing = models.BooleanField()
file = models.CharField(max_length=100)
<span style="color:blue">scanned_by</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson, blank=True, null=True)
scanned_on = models.DateField(blank=True, null=True)
survey_id = models.IntegerField()
contents = models.CharField(max_length=20)
number_in_wallet = models.IntegerField(blank=True, null=True)
lon_utm = models.FloatField(blank=True, null=True)
lat_utm = models.FloatField(blank=True, null=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexblock</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
name = models.CharField(max_length=100)
@ -289,11 +236,6 @@ from django.db import models
primarysurvexfile_id = models.IntegerField(blank=True, null=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexequate</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
cave_id = models.IntegerField(blank=True, null=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexfile</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
path = models.CharField(max_length=200)
@ -352,27 +294,6 @@ from django.db import models
cave_id = models.IntegerField(blank=True, null=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvey</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
new_since_parsing = models.BooleanField()
non_public = models.BooleanField()
<span style="color:blue">expedition</span> = models.<span style="color:blue">ForeignKey</span> (CoreExpedition)
wallet_number = models.IntegerField(blank=True, null=True)
wallet_letter = models.CharField(max_length=1, blank=True)
comments = models.TextField(blank=True)
location = models.CharField(max_length=400, blank=True)
<span style="color:blue">subcave</span> = models.<span style="color:blue">ForeignKey</span> (CoreNewsubcave, blank=True, null=True)
<span style="color:blue">survex_block</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexblock, unique=True, blank=True, null=True)
<span style="color:blue">logbook_entry</span> = models.<span style="color:blue">ForeignKey</span> (CoreLogbookentry)
centreline_printed_on = models.DateField(blank=True, null=True)
<span style="color:blue">centreline_printed_by</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson, blank=True, null=True)
tunnel_file = models.CharField(max_length=100, blank=True)
<span style="color:blue">tunnel_main_sketch</span> = models.<span style="color:blue">ForeignKey</span> ('self', blank=True, null=True)
integrated_into_main_sketch_on = models.DateField(blank=True, null=True)
<span style="color:blue">integrated_into_main_sketch_by</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson, blank=True, null=True)
rendered_image = models.CharField(max_length=100, blank=True)
<span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfile</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
tunnelpath = models.CharField(max_length=200)
@ -456,18 +377,6 @@ from django.db import models
name = models.CharField(max_length=50)
<span style="color: lime">class</span> <span style="color:blue"><b>FlatpagesEntranceredirect</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
originalurl = models.CharField(db_column='originalURL', max_length=200) <span style="color: green"># Field name made lowercase.</span>
<span style="color:blue">entrance</span> = models.<span style="color:blue">ForeignKey</span> (CoreEntrance)
<span style="color: lime">class</span> <span style="color:blue"><b>FlatpagesRedirect</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
originalurl = models.CharField(db_column='originalURL', unique=True, max_length=200) <span style="color: green"># Field name made lowercase.</span>
newurl = models.CharField(db_column='newURL', max_length=200) <span style="color: green"># Field name made lowercase.</span>
<span style="color: lime">class</span> <span style="color:blue"><b>RegistrationRegistrationprofile</b></span>(models.Model):
id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span>
activation_key = models.CharField(max_length=40)
@ -521,6 +430,10 @@ from django.db import models
</pre></code>
<hr />
Return to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -271,10 +271,9 @@ downloadable documents (e.g. PDF) of prospecting guides and safety procedures -
which we encourage all expoers to download to their phone before they leave base-camp.
We already have a number of these but some are in .odt format which is not phone-friendly. But that is another job to fix.
<hr />
Return to<br />
<a href="trogintro.html">Troggle intro</a><br />
<hr />
Return to: <a href="trogdesign.html">Troggle design and future implementations</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br /><hr />
</body>
</html>

View File

@ -142,6 +142,9 @@ Also in the :loser:fixedpts/scripts/convert_shx/ folder is a 135-line short scri
<hr />
Return to: <a href="scriptsother.html">Other scripts</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -62,8 +62,9 @@ in the HTML header. Then when troggle renders the page it will not allow the use
<hr />
Go in to: <a href="scriptscurrent.html">More details about these scripts</a><br />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -210,6 +210,8 @@ Philip</pre>
<hr>
Return to: <a href="scriptsother.html">Other scripts</a><br />
<hr />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br /><hr />
</body>
</html>

View File

@ -361,10 +361,10 @@ ScriptAlias /boe /home/expo/boe/boc/boc.pl
</code> in <var>~expo/config/apache/expo.conf</var>.
<hr />
Go on to:
<a href="trogintro.html">troggle introduction</a><li>
Return to:
<a href="../computing/onlinesystems.html">expo online systems overview</a><li>
Return to: <a href="trogdesign.html">Troggle design and future implementations</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -73,8 +73,10 @@ capability: <a href="https://docs.python.org/3.8/library/doctest.html">docs.pyth
<hr />
Return to: <a href="trogdesign.html">Troggle design</a><br />
Return to: <a href="trogdesign.html">Troggle design and future implementations</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Handbook Troggle XXX</title>
<link rel="stylesheet" type="text/css" href="../../css/main2.css" />
</head>
<body><style>body { background: #fff url(/images/style/bg-system.png) repeat-x 0 0 }</style>
<h2 id="tophead">CUCC Expedition Handbook</h2>
<h1>Pre-Troggle Assumptions</h1>
<h3><em>Assumptions</em> and starting points</h3>
<ol>
<li>Let's <var>not</var> try to design a generic catalogue for storing all kind of data about caves of the whole world, intended for every kind of user (sports, exploration, science).
<ul>
<li>Let's just settle for a generic framework.
<li>Let geeks in individual countries or individual communities write their tools operating within this framework.
</ul>
<li>Let's try make it available for the layman, but still well-playable for the geeks.
<li>Let's rely on already existing, popular technologies.
<li>Let's keep it open source and multiplatform.
<li>Let's try not to reinvent the wheel.
<li>Let's not assume everyone has an Internet connection while working with their data.
<li>Let's version-control as much as possible.
<li>Let's support i18n - let's use UTF-8 everywhere and cater for data in many languages(entrance names, cave descriptions, location descriptions etc.)
</ol>
<p>These are taken from a two page preliminary design document for <a href="../../documents/caca_arch2.pdf">'caca' (Cave Catalogue) rev.2 2013-07-26</a> by Wookey (copied from http://wookware.org/software/cavearchive/caca_arch2.pdf)
<p>Troggle diverges markedly from these ideals in both design and in actual use.
<hr />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -17,7 +17,6 @@ faced with user-generated data and how to fix them. Common error messages. </em>
fix import errors by re-editing the input files: survex, tunnel, or logbook.
<p>Here we will explain the useful diagnostic detailed data pages for finding mis-matched files:<br>
<img border="1" class="onright" width="150px" src='tricky-troggle.jpg' alt='git logo'/></a>
<var>These do not work until the server is updated in July 2020 to run the python3 version of troggle</var><br>
<a href="http://expo.survex.com/statistics">statistics</a> - survey legs and distances for each expo<br>
<a href="/survexfile/161">all data one cave</a> - all the survex data for one cave and who was on each trip<br>
<a href="/personexpedition/MartinGreen/2002">per-person caving</a> - list of logbook trips and surveys for one person<br>
@ -27,18 +26,18 @@ fix import errors by re-editing the input files: survex, tunnel, or logbook.
<a href="/survey_scans/2014%252347/">per-wallet links</a> - links to scan files and survex files from one wallet<br>
<a href="/tunneldata">tunneldata</a> - all the tunnel drawings and the wallets and scanned images they derive from<br>
<br>
<var>These do not work until the server is updated in July 2020 to run the python3 version of troggle</var><br>
<a href="/admin/core/dataissue/l">/admin/core/dataissue/</a> - where the data import errors and warnings are recorded<br>
<br>
Configuration aids when setting up on a new machine (move to main manual):<br>
<a href="/pathsreport">pathsreport</a> - debugging aid<br>
<em>How to set up troggle on a new machine. <br>
Copies of the older material where that is illuminating.</em>
Copies of the older material where that is illuminating.<br>
...needs more work...</em>
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Go on to: <a href="trognotes.html">Troggle notes to be restructured</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Handbook Troggle Index</title>
<link rel="stylesheet" type="text/css" href="../../css/main2.css" />
</head>
<body><style>body { background: #fff url(/images/style/bg-system.png) repeat-x 0 0 }</style>
<h2 id="tophead">CUCC Expedition Handbook</h2>
<h1>Handbook Troggle - Index</h1>
<p>The number of different webpages describing troggle, configuring the server troggle runs on, maintaining the underlying Django system, current documentation, future design issues and historical decisions is all getting a bit voluminous. So we need a complete index:
<p>
<a href="trogintro.html">Troggle Introduction</a> - what it is<br>
<a href="trogusers.html">Troggle - the users</a> - Who needs to know What and When<br>
<a href="trogdocm.html">Troggle - Fixing things</a> - users' manuals for data import<br>
<a href="trogimport.html">Troggle Data Import</a> - reset and import data<br>
<a href="trogmanual.html">Troggle Maintenance</a> - list of maintenance tasks<br>
<a href="trogarch.html">Troggle Architecture</a> - diagrams, files, structure<br>
<a href="datamodel.html">Troggle Data Model</a> - syntax-coloured list of Classes, instance variables and foregin keys<br>
<a href="trogdesign.html">Troggle Design Decisions for the Future</a> - open issues being worked on<br>
<ul>
<li><a href="trogsimpler.html">Troggle - a kinder simpler troggle?</a> - Radost's proposals (critiqued)<br>
<li><a href="trogspeculate.html">Troggle Architecture Speculations</a> - as in April 2020<br>
<li><a href="trog2030.html">Troggle in 2025-2030</a> - architectural evolution proposal<br>
<li><a href="trogregistr.html">Troggle Login and user registration</a> - proposal to remove registration<br>
<li><a href="menudesign.html">Troggle Menu Design</a> - options for replacing the menuing system<br>
</ul>
<a href="serverconfig.html">Troggle server configuration</a> - how to get troggle running on a new machine<br>
<a href="unittests.html">Troggle Unit Tests</a> - test suite for programmers<br>
<a href="trogstatus.html">Troggle & Expo Systems - status update</a> - where we are now<br>
<br>
<a href="trognotes.html">Troggle Notes</a> - the beginnings of a manual<br>
<a href="trogassumptions.html">Pre-Troggle Assumptions</a> - list of assumptions<br>
<a href="archnotes.html">Archive Notes</a> - old ideas and original discussions<br>
<br>
<a href="scriptsother.html">Additional Scripts</a> - non-django but important<br>
<a href="scriptscurrent.html">Additional Scripts</a> - more detail<br>
<a href="scriptsqms.html">QM (Question Mark) Scripts</a> - all five ways we do it<br>
<br>
<hr />
Return to: <a href="trogintro.html">Troggle intro</a><br />
<hr />
</body>
</html>

View File

@ -57,18 +57,21 @@ for very quick and urgent changes.
how to use it</a> and <em>how to tidy up afterwards</em>].
</ol>
<h3 id="troggle">Troggle - who uses it?</a></h3>
<p>The "use-case" users are described in <a href="trogusers.html">Who needs to know What and When</a>.
<h3 id="where">Troggle - where it gets the data</a></h3>
<p>
All the data of all kinds is stored in files. When troggle starts up it imports that data from the files. There are other scripts doing useful things (folk, wallets) and these too get their data from files.
<p>There is never any need to back up or archive the database as it is rebuilt from files. Rebuilding troggle and re-importing all the data takes about half an hour.
<p>There is never any need to back up or archive the database as it is rebuilt from files. Rebuilding troggle and re-importing all the data on the server takes about 4 minutes (as of July 2020).
<hr />
Go on to:
<a href="trogstatus.html">troggle status</a><br />
Return to:
<a href="../computing/onlinesystems.html">expo online systems overview</a><br />
<hr />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br /><hr />
</body>
</html>

View File

@ -10,20 +10,6 @@
<h1>Troggle - the beginnings of a manual</h1>
<p>Troggle runs much of the the cave survey data management, presents the data on the website and manages the Expo Handbook.
<h2>Who needs to know What and When</h2>
<p>This part of the handbook is intended for people maintaining the troggle software. Day to day cave recording and surveying tasks are documented in the expo "survey handbook"
<p>We have several quite different sorts of cavers who interact with troggle:
<ul>
<li>The youthful hard caver, who is trained in underground survey techniques but whose interest is limited to handing over the grubby survey notes when she emerges into daylight. Is keen to know how many km of cave she surveyed each year and to see pretty drawn-up surveys (done by someone else). Walks through walls.
<li>The surface walker who is happy to do route-finding over the plateau, takes lots of photos of cave entrances and cavers enjoying sunshine and may sometimes be able to provide GPS tracks of where he has been. He needs a prospecting guide to find previously identified entrances and be able to find photos of caves in past years. Writes up his explorations in execrable handwriting in the logbook. Looks at walls.
<li>The diligent student who types up the survey notes into survex file format, transcribes sketch notes onto survex centre-lines, and uses Therion to produce beautiful survey graphics of the caves he has digitised - but who is not a computer geek and whose brain oozes out of his ears when Wookey explains what git is. Applies artistic graffiti to walls.
<li>The archivist who takes the survex files, the therion files, the GPS files, the scanned survex centrelines and files them in the right places on the <em> expo laptop</em>, uses the troggle reports to help ensure that these are consistent and are filed correctly. Uses troggle input forms to "create new cave" in the system and adds to the directory structures to match the recently discovered caves. Is learning git. When transcribing bad handwriting in logbook (or struggling with git), climbs walls.
<li><em>Nerdus maximus</em>: talks python in his sleep and can rebase a hairy git branch without error after 7 bottles of Gosser. Painfully averse to writing documentation. Overstressed, over-caffeinated and with a tendency to mutter that it's all obvious. Oblivious to walls.
</ul>
<p>These are some of the "use cases" for which troggle needs to be (re)designed to cope with.
<h3>Rewrite from here on...</h3>
<img border="1" class="onright" width="150px" src='tricky-troggle.jpg' alt='git logo'/></a>
<p>This troggle manual describes these:
@ -73,8 +59,11 @@ Before then we manually maintained <a href="../computing/update.html">a list of
<p>A history of the expo website and software was published in Cambridge Underground 1996. A copy of this article <a href="../c21bs.html">Taking Expo Bullshit into the 21st Century</a> is archived here.
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Dubiously explore: <a href="archnotes.html">Historic ideas for cave data management</a><br />
Return to: <a href="trogdesign.html">Troggle design notes</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -49,8 +49,10 @@ Django gives us fine-grained access control settings for admin users so we can e
<p>It might appear that proposal #2 would be on the road to eventually leaving Django, but because of the security issues it wouldn't really. This would all need to be rewritten again when we leave Django. So I think Proposal #1 will require less wasted work.
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogdesign.html">Troggle Design Decisions</a><br />
Return to: <a href="trogdesign.html">Troggle design and future implementations</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -142,7 +142,7 @@ more modern look there as well
[The effort estimate is similarly a gross underestimate because (a) he assumes one script per page of output, forgetting all the core work to create a central consistent dataset, and (b) he is missing out most
of the functionality we use without realizing it because it is built into
django's SQL system, such as multi-user operations.
<p><span style="color:red">Eventually we will have to <a href="trogdesignx.html">migrate from django</a> of course</span>, as it will eventually
<p><span style="color:red">Eventually we will have to <a href="trogdesign.html">migrate from django</a> of course</span>, as it will eventually
fail to keep up with the rest of the world. Right now we need to get ourselves onto python3
so that we can use an LTS release which has current security updates. This is
<a href="https://docs.djangoproject.com/en/3.0/internals/release-process/#supported-versions-policy">more urgent for django</a> than for Linux. In Ubuntu terms we are on 18.04 LTS (Debian 10) which has no free maintenance updates from 2023. <span style="color:red">We should plan to migrate troggle from django to another framework in about 2025. See stroggle below.</span>]
@ -170,8 +170,11 @@ We need a file uploading system to put things in the right place; and this would
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogdesign.html">Troggle design and future implementations</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -115,8 +115,10 @@ Nunjucks including <a href="https://service-manual.nhs.uk/design-system/prototyp
the NHS digital service</a> and Firefox.
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogdesign.html">Troggle Design Decisions</a><br />
Return to: <a href="trogdesign.html">Troggle design and future implementations</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -65,14 +65,14 @@ In the course of these migrations several unused or partly-used django plugins w
<p>With any luck that will be the last of our involvement with django migrations as we may not move on from using django 2.2 until we stop using django altogether, see <a href="trogspeculate.html">troggle architecture speculations</a>.
<hr />
<img border="1" class="onright" width="150px" src='tricky-troggle.jpg' alt='git logo'/></a>
Go on to: <br>
<a href="trogmanual.html">Troggle maintenance manual</a><br />
<a href="trogspeculate.html">Troggle architecture speculations</a><br />
<a href="trogdesign.html">Troggle design decisions</a><br />
Return to: <br />
<a href="../website-history.html">Website history</a><br /><br /><br />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br /><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br /><hr />
<br />
Return to:<br />
<a href="trogintro.html">Troggle intro</a><br />
<a href="../website-history.html">Website history</a><br />
<hr />
</body>

View File

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Handbook Troggle NOTES</title>
<link rel="stylesheet" type="text/css" href="../../css/main2.css" />
</head>
<body><style>body { background: #fff url(/images/style/bg-system.png) repeat-x 0 0 }</style>
<h2 id="tophead">CUCC Expedition Handbook</h2>
<h1>Troggle - the users</h1>
<p>Troggle runs much of the the cave survey data management, presents the data on the website and manages the Expo Handbook.
<h2>Who needs to know What and When</h2>
<p>We have several quite different sorts of cavers who interact with troggle:
<img border="1" class="onright" width="150px" src='tricky-troggle.jpg' alt='git logo'/></a>
<ul>
<li>The youthful hard caver, who is trained in underground survey techniques but whose interest is limited to handing over the grubby survey notes when she emerges into daylight. Is keen to know how many km of cave she surveyed each year and to see pretty drawn-up surveys (done by someone else). Walks through walls.
<li>The surface walker who is happy to do route-finding over the plateau, takes lots of photos of cave entrances and cavers enjoying sunshine and may sometimes be able to provide GPS tracks of where he has been. He needs a prospecting guide to find previously identified entrances and be able to find photos of caves in past years. Writes up his explorations in execrable handwriting in the logbook. Looks at walls.
<li>The diligent student who types up the survey notes into survex file format, transcribes sketch notes onto survex centre-lines, and uses Therion to produce beautiful survey graphics of the caves he has digitised - but who is not a computer geek and whose brain oozes out of his ears when Wookey explains what git is. Applies artistic graffiti to walls.
<li>The archivist who takes the survex files, the therion files, the GPS files, the scanned survex centrelines and files them in the right places on the <em> expo laptop</em>, uses the troggle reports to help ensure that these are consistent and are filed correctly. Uses troggle input forms to "create new cave" in the system and adds to the directory structures to match the recently discovered caves. Is learning git. When transcribing bad handwriting in logbook (or struggling with git), climbs walls.
<li><em>Nerdus maximus</em>: talks python in his sleep and can rebase a hairy git branch without error after 7 bottles of Gosser. Painfully averse to writing documentation. Overstressed, over-caffeinated and with a tendency to mutter that it's all obvious. Oblivious to walls.
</ul>
<p>These are some of the "use cases" for which troggle needs to be (re)designed to cope with.
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br />
<hr />
</body>
</html>

View File

@ -36,6 +36,7 @@ No tests are run with the real expo database.
<hr />
Go on to: <a href="trogarch.html">Troggle architecture</a><br />
Return to: <a href="trogintro.html">Troggle intro</a><br />
<hr />
Troggle index:
<a href="trogindex.html">Index of all troggle documents</a><br /><hr />
</body>
</html>