From c0687615a46b45ceb755c1c3df2f6bc8cc5dd3da Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Sun, 5 Nov 2023 21:59:01 +0200 Subject: [PATCH] bugfix and ongoing issue --- core/views/uploads.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/views/uploads.py b/core/views/uploads.py index fb62dd3..0477835 100644 --- a/core/views/uploads.py +++ b/core/views/uploads.py @@ -12,7 +12,7 @@ from troggle.core.models.caves import GetCaveLookup from troggle.core.models.logbooks import LogbookEntry, writelogbook, PersonLogEntry from troggle.core.models.survex import DrawingFile from troggle.core.models.troggle import DataIssue, Expedition, PersonExpedition -from troggle.core.utils import alphabet_suffix, current_expo, sanitize_name +from troggle.core.utils import alphabet_suffix, current_expo, sanitize_name, unique_slug from troggle.parsers.people import GetPersonExpeditionNameLookup, known_foreigner # from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time* @@ -49,9 +49,9 @@ todo = """ def create_new_lbe_slug(date): onthisdate = LogbookEntry.objects.filter(date=date) n = len(onthisdate) - # print(f" Already entries on this date: {n}\n {onthisdate}") + print(f" Already entries on this date: {n}\n {onthisdate}") - suffix = alphabet_suffix(n) + suffix = alphabet_suffix(n+1) tid = f"{date}{suffix}" print(tid) @@ -73,7 +73,7 @@ def store_edited_entry_into_database(date, place, title, text, others, author, t if LogbookEntry.objects.filter(slug=slug).exists(): # oops. - message = " ! - DUPLICATE SLUG for logbook entry " + tripdate + " - " + slug + message = f" ! - DUPLICATE SLUG for logbook entry {date} - {slug}" DataIssue.objects.create(parser="logbooks", message=message) slug = slug + "_" + unique_slug(text,2) @@ -157,6 +157,10 @@ def logbookedit(request, year=None, slug=None): putting the text of the form prompt in red (same as for an invalid date, which is arguably more important). No check is done on the other people on the trip as this is picked up anyway by parsing on import and we don't really care at this point. + + If the author name is mispelled, noticed, and chnaged, then two logbook entries are created + with sequential slugs ...b ...c etc. This is because we are doing validation on GET not on POST + and we are not rewriting the URL when a slug gets set. Hmm. """ def validate_year(year): try: @@ -202,7 +206,7 @@ def logbookedit(request, year=None, slug=None): print(message) return render(request, "errors/generic.html", {"message": message}) else: - # if there is no slug then this is a completely new lbe and we need to enter it into the db + # if there is no slug then this is probably a completely new lbe and we need to enter it into the db # otherwise it is an update # validation all to be done yet.. date = request.POST["date"].strip()