diff --git a/README.txt b/README.txt index 7582003..070dc72 100644 --- a/README.txt +++ b/README.txt @@ -1,8 +1,10 @@ +Updated 10 April 2021 + Troggle is an application for caving expedition data management, originally created for use on Cambridge University Caving Club (CUCC)expeditions and licensed under the GNU Lesser General Public License. -Troggle has been forked into two projects. The original one is maintained by Aron Curtis +Troggle has been forked into two projects. The original one is maintained by Aaron Curtis and was used for Erebus caves. The CUCC variant uses files as the definitive data, not the database and lives at http://expo.survex.com/repositories/troggle/.git/ @@ -14,10 +16,13 @@ and at troggle/debian/serversetup . Troggle setup ============= +0. read the very extensive oinline documentation and stop reading this README. 1. git clone troggle into correct directory structure 2. install pip, django & patch django 3. configure django to recognise troggle +See http://expo.survex.com/handbook/computing/onlinesystems.html + Setting up directories ---------------------- - create a directory in which you also have the loser/, expoweb/ and drawings/ repositories @@ -58,11 +63,11 @@ Follow the instructions contained in the file to fill out your settings. Python3, Django, and Database setup ----------------------------------- First version of troggle using python3 required Django 1.8.19 (16 June 2019) -We are now using Django 1.11.29 +We are now using Django 2.2.19 Read this: https://docs.djangoproject.com/en/3.0/topics/install/ -We are installing with python3.7.5 +We are installing with python3.7.3 Also : https://linuxize.com/post/how-to-install-pip-on-ubuntu-20.04/ ] Install Django using pip, not with apt, on your test system. @@ -79,13 +84,15 @@ $ sudo pip3 install -r requirements.txt where requirements.txt is: confusable-homoglyphs==3.2.0 -Django==1.11.29 -django-registration==2.5.2 -docutils==0.16 -Pillow==7.1.2 -pytz==2020.1 -sqlparse==0.3.1 -Unidecode==1.1.1 +Django==2.2.19 +docutils==0.14 +gunicorn==20.1.0 +Pillow==5.4.1 +pytz==2019.1 +sqlparse==0.2.4 +Unidecode==1.0.23 + +These minor things are as-standard on Debian Buster (10). if you don't use sudo it will install them all in ~/.local/ and so will only be available for you, not everyone; and @@ -106,18 +113,13 @@ venv option Or use a python3 virtual environment: (python3.5 not later) $ cd troggle $ cd .. -$ python3.5 -m venv pyth35d2 +$ python3.7 -m venv pyth37d2 (creates folder with virtual env) -$ cd pyth35d2 +$ cd pyth37d2 $ source bin/activate (now install everything ) $ pip install -r requirements.txt -This works if you need a specific version of python3 -but doesn't really work with python2.7 as you also need to obtain -an elderly version of pip that will work and use and older virtual -environment utility - Testing the django installation ------------------------------- Test things by running these commands: @@ -157,11 +159,9 @@ which will give security warnings for deployment. python manage.py check -Wall Gives warnings of deprecated Django which should be fixed asap. -python manage.py test core +python manage.py test -v 2 Runs our test suite -python manage.py test -Runs tests for all the django plugins ("apps") Registering troggle as a django application ------------------------------------------- @@ -219,7 +219,7 @@ folk/folk.csv table - a year doesn't exist until that is done.] Database -------- If you want to use MySQL or Postgresql, download and install them. -However, you can also use Django with sqlite3, which is included in Python and thus requires no extra installation. +However, you can also use Django with sqlite3 MariaDB database ---------------- @@ -252,6 +252,9 @@ $ python manage.py runserver 8000 -v 3 from the troggle directory. This runs it on port 8000 so you see the website at http://localhost:8000/ +gunicorn also works. This runs with 9 workers (suitable for a 4-core processor): +$ gunicorn --reload -w 9 -b :8000 wsgi + EXTRAS ------ cgit - https://git.zx2c4.com/cgit/about/ @@ -301,7 +304,7 @@ olly: ExecReload=/usr/sbin/apachectl graceful Experimental additions ---------------------- -These are modern tools which help us document how troggle works. +These are untried tools which help us document how troggle works. pip install pygraphviz pip install pyparsing pydot # installs fine diff --git a/parsers/logbooks.py b/parsers/logbooks.py index 467ff92..11159ad 100644 --- a/parsers/logbooks.py +++ b/parsers/logbooks.py @@ -10,7 +10,7 @@ from django.conf import settings from django.template.defaultfilters import slugify from django.utils.timezone import get_current_timezone, make_aware -from troggle.core.models import DataIssue, Expedition +from troggle.core.models import DataIssue, Expedition, TROG from troggle.core.models_caves import Cave, LogbookEntry, PersonTrip, GetCaveLookup from parsers.people import GetPersonExpeditionNameLookup from utils import save_carefully @@ -86,7 +86,6 @@ def EnterLogIntoDbase(date, place, title, text, trippeople, expedition, logtime_ """ saves a logbook entry and related persontrips Does NOT save the expeditionday_id - all NULLs. why? """ - trippersons, author = GetTripPersons(trippeople, expedition, logtime_underground) if not author: print(" ! - Skipping logentry: " + title + " - no author for entry") @@ -417,7 +416,7 @@ def SetDatesFromLogbookEntries(expedition): persontrip.save() # also saved in EnterLogIntoDbase. MERGE these to speed up import. -def LoadLogbookForExpedition(expedition,expect): +def LoadLogbookForExpedition(expedition, expect): """ Parses all logbook entries for one expedition If a cache is found it uses it. If not found, or fails sanity checks, parses source file. """ @@ -544,6 +543,7 @@ def LoadLogbooks(): expd ={} with open("loadlogbk.log", "a") as log: for expo in expos: + TROG['pagecache']['expedition'][expo.year] = None # clear cache if expo.year not in nologbook: print((" - Logbook for: " + expo.year)) numentries = LoadLogbookForExpedition(expo, entries[expo.year]) diff --git a/templates/expedition.html b/templates/expedition.html index b9c51b8..5a6f559 100644 --- a/templates/expedition.html +++ b/templates/expedition.html @@ -20,6 +20,8 @@ {% endfor %}

+

Reparse and reload this year's logbook by clicking here: RELOAD +

At a single glance: The table shows all expo cavers and their recorded trips. The columns are the date in the month (July or August), with a "T" for a logbook entry, and an "S" for a survey trip. The colours are the same for people on the same trip.