diff --git a/core/views/logbooks.py b/core/views/logbooks.py index 5d9dca2..5f560e8 100644 --- a/core/views/logbooks.py +++ b/core/views/logbooks.py @@ -230,7 +230,7 @@ def logentrydelete(request, year): print(f" - '{i}' {request.POST[i]}") 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 + # OK we delete it from the db and then re-save logbook.html file # to ensure that the permanent record also has the entry deleted. entry.delete() diff --git a/core/views/uploads.py b/core/views/uploads.py index 0ad168c..86b5f6c 100644 --- a/core/views/uploads.py +++ b/core/views/uploads.py @@ -291,6 +291,7 @@ def logbookedit(request, year=None, slug=None): author = "" if request.method == "POST": + prev_slug = "" # None value pending overwrite from submitted form form = LogbookEditForm(request.POST) if not form.is_valid(): message = f'Invalid form response for logbook entry creating "{request.POST}"' @@ -306,8 +307,8 @@ def logbookedit(request, year=None, slug=None): place = request.POST["place"].strip().replace(' - ',' = ') # no hyphens ! title = request.POST["title"].strip() entry = request.POST["text"].strip() - if "slug" in request.POST: - slug = request.POST["slug"].strip() # if we are re-editing the same entry again + if "prev_slug" in request.POST: + prev_slug = request.POST["prev_slug"].strip() # if we are re-editing the same entry again entry = entry.replace('\r','') # remove HTML-standard CR inserted from form. entry = entry.replace('\n\n','\n
\n') # replace 2 \n with
# entry = entry.replace('\n\n','\n
\n
\n') # replace 2 \n with
@@ -335,15 +336,20 @@ def logbookedit(request, year=None, slug=None):
authorflag = True
print(f"! Unrecognised author: {author}")
- # slug is set either because we already posted or because it was specified inthe url
- if not slug:
+ if not prev_slug and not slug:
# Creating a new logbook entry with all the gubbins
slug = create_new_lbe_slug(date)
- else:
- # OK we could patch the object in place, but if the people on the trip have changed this
- # would get very messy. So we delete it and recreate it and all its links
- print(f"- Deleting the LogBookEntry {slug}")
- LogbookEntry.objects.filter(slug=slug).delete()
+
+ if prev_slug and not slug:
+ # if this was a previous post, then prev_slug will have been set on the form
+ # we are editing a previous thing, so we don't create a new lbe
+ slug = prev_slug
+
+ # OK we could patch the object in place, but if the people on the trip have changed this
+ # would get very messy. So we delete it, and thus all the dependent objects,
+ # and recreate it and all its links. It might not exist though.
+ print(f"- Deleting the LogBookEntry {slug}")
+ LogbookEntry.objects.filter(slug=slug).delete() # works even if it does not exist
print(f"- Creating the LogBookEntry {slug}")
year = slug[0:4]
@@ -351,13 +357,13 @@ def logbookedit(request, year=None, slug=None):
expedition = Expedition.objects.get(year=year)
except Expedition.DoesNotExist:
message = f'''! - This expo "{year}" not created yet
- It needs to be created before you can save a logbook entry.
- See /handbook/computing/newyear.html
-
- WHAT TO DO NOW:
- 1. Press the Back button on your proswer to return to the screen where you typed up the entry,
- 2. Copy the text of what you wrote into a new text file,
- 3. Direct a nerd to fix this. It should take only a couple of minutes.'''
+ It needs to be created before you can save a logbook entry.
+ See /handbook/computing/newyear.html
+
+ WHAT TO DO NOW:
+ 1. Press the Back button on your proswer to return to the screen where you typed up the entry,
+ 2. Copy the text of what you wrote into a new text file,
+ 3. Direct a nerd to fix this. It should take only a couple of minutes.'''
print(message)
return render(request, "errors/generic.html", {"message": message})
store_edited_entry_into_database(date, place, title, entry, others, author, tu, slug)
@@ -440,7 +446,7 @@ def logbookedit(request, year=None, slug=None):
+ str(lbe_commit.returncode)
)
message = (
- f"! - FORM Logbook Edit -Error code with git on server for {filename}. {slug} edits saved, added to git, but NOT committed.\n"
+ f"! - FORM Logbook Edit -Error code '{lbe_commit.returncode}' with git on server for {filename}. {slug} edits saved, added to git, but NOT committed.\n"
+ msgdata
)
print(message)
diff --git a/templates/logbookform.html b/templates/logbookform.html
index a84f6ce..ebc5111 100644
--- a/templates/logbookform.html
+++ b/templates/logbookform.html
@@ -29,7 +29,7 @@