diff options
Diffstat (limited to 'core/views/logbooks.py')
-rw-r--r-- | core/views/logbooks.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/core/views/logbooks.py b/core/views/logbooks.py index b3f3176..2c15a1e 100644 --- a/core/views/logbooks.py +++ b/core/views/logbooks.py @@ -3,9 +3,11 @@ import re from django.db.models import Q from django.shortcuts import render from django.views.generic.list import ListView +from django.shortcuts import render, redirect + import troggle.settings as settings -from troggle.core.models.logbooks import LogbookEntry, PersonLogEntry, QM +from troggle.core.models.logbooks import LogbookEntry, PersonLogEntry, QM, writelogbook from troggle.core.models.survex import SurvexBlock, SurvexFile from troggle.core.models.troggle import Expedition, Person from troggle.core.models.wallets import Wallet @@ -218,6 +220,31 @@ def personexpedition(request, slug="", year=""): print(msg) return render(request, "errors/generic.html", {"message": msg}) +def logentrydelete(request, year): + """This only gets called by a POST from the logreport page + + The function in memory of James Waite who managed to make so many duplicate logbook entries + that we needed a sopecial mechanism to delete them. + """ + eslug = request.POST["entry_slug"] + entry = LogbookEntry.objects.get(slug=eslug) + # OK we delete it formt he db and then re-save logbook.html file + # to ensure that the permanent record also has the entry deleted. + entry.delete() + + print(f"- Rewriting the entire {year} logbook to disc ") + filename= "logbook.html" + try: + writelogbook(year, filename) # uses a template + except: + message = f'! - Logbook saving failed - \n!! Permissions failure ?! on attempting to save file "logbook.html"' + print(message) + return render(request, "errors/generic.html", {"message": message}) + + + return redirect(f"/logreport/{year}") + + def logreport(request, year=1999): """ Remember that 'personexpedition__expedition' is interpreted by Django to mean the @@ -231,7 +258,12 @@ def logreport(request, year=1999): expeditions = Expedition.objects.all() # top menu only, evaluated only when template renders dates = None dateditems = None + logged_in = False + + if request.user.is_superuser: # expoadmin is both .is_staff and ._is_superuser + logged_in = True + try: expo = Expedition.objects.get(year=int(year)) @@ -265,6 +297,7 @@ def logreport(request, year=1999): "settings": settings, "dateditems": dateditems, "dates": dates, + "logged_in": logged_in, } # print(f"logreport(): rendering..") return render(request, "logreport.html", context) |