mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-17 10:17:19 +00:00
Entrances now do cookie / git author thing. + tidyup.
This commit is contained in:
@@ -484,6 +484,7 @@ def edit_cave(request, path="", slug=None):
|
||||
if form.is_valid():
|
||||
print(f'edit_cave(): POST is valid. Editing {cave}')
|
||||
editor = form.cleaned_data["who_are_you"]
|
||||
editor = git_string(editor)
|
||||
cave = form.save(commit=False)
|
||||
# print(cave)
|
||||
if not cave.filename:
|
||||
@@ -645,10 +646,7 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
|
||||
imgpath = Path(path) / cave.areacode / cave.number()
|
||||
print(f"Edit Entrance {imgpath=}")
|
||||
|
||||
print(f"Reading cookie...")
|
||||
editor_id = request.COOKIES.get('editor_id', 'Hohlenforscher <hohlenforscher@stonebridge.expo>') # if no cookie, then default string
|
||||
editor = git_string(editor_id) # belt and braces, should have been validity checked on saving already
|
||||
print(f"Cookie read: {editor_id=} reformatted as: {editor=}")
|
||||
editor = get_cookie(request)
|
||||
|
||||
if request.POST:
|
||||
print(f"POST Online edit of entrance: '{entrance}' where {cave=}")
|
||||
@@ -682,8 +680,9 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
|
||||
return render(request, "errors/generic.html", {"message": message})
|
||||
else:
|
||||
|
||||
print(f"- POST {caveslug=} {entslug=} {entranceletter=} {path=}")
|
||||
print(f"'edit_entrance(): POST is valid {caveslug=} Editing {entslug=} {entranceletter=} {path=}")
|
||||
editor = entform.cleaned_data["who_are_you"]
|
||||
editor = git_string(editor)
|
||||
if entslug is None:
|
||||
# we are creating a new entrance
|
||||
entrance = entform.save(commit=False)
|
||||
@@ -731,14 +730,17 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
|
||||
print(f"- POST WRITE letter: '{ce}' {entrance=}")
|
||||
try:
|
||||
write_and_commit([entrance_file, cave_file], f"Online edit of entrance {entrance.slug}", editor)
|
||||
return HttpResponseRedirect("/" + cave.url)
|
||||
edit_response = HttpResponseRedirect("/" + cave.url)
|
||||
edit_response.set_cookie('editor_id', editor, max_age=COOKIE_MAX_AGE) # cookie expires after COOKIE_MAX_AGE seconds
|
||||
return edit_response
|
||||
except Exception as e:
|
||||
efilepath, econtent, eencoding = entrance_file
|
||||
cfilepath, ccontent, cencoding = cave_file
|
||||
message = f"- FAIL write_and_commit \n entr:'{efilepath}'\n cave:'{cfilepath}'\n\n{e}"
|
||||
print(message)
|
||||
return render(request, "errors/generic.html", {"message": message})
|
||||
|
||||
|
||||
# Unlike other similar forms, we do NOT drop into this GET code after processing the POST
|
||||
else: # GET the page, not POST, or if either of the forms were invalid when POSTed
|
||||
entletterform = None
|
||||
entletter = ""
|
||||
@@ -753,7 +755,7 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
|
||||
# ent only in db not on file. Interesting, let's run with it using whatever we have in the db
|
||||
print(f"ENTRANCE NOT read from file: entranceletter = '{ce.entranceletter}'")
|
||||
|
||||
entform = EntranceForm(instance=entrance)
|
||||
entform = EntranceForm(instance=entrance, initial={"who_are_you":editor})
|
||||
if entslug is None:
|
||||
entletterform = EntranceLetterForm()
|
||||
# print(f" Getting entletter from EntranceLetterForm")
|
||||
@@ -764,9 +766,9 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
|
||||
print(f" Blank value: getting entletter from EntranceLetterForm")
|
||||
print(f"{entletter=} ")
|
||||
else:
|
||||
entform = EntranceForm()
|
||||
entform = EntranceForm(initial={"who_are_you":editor})
|
||||
entletterform = EntranceLetterForm()
|
||||
|
||||
|
||||
return render(
|
||||
request,
|
||||
"editentrance.html",
|
||||
|
||||
Reference in New Issue
Block a user