diff options
Diffstat (limited to 'core/views/caves.py')
-rw-r--r-- | core/views/caves.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/core/views/caves.py b/core/views/caves.py index ba74f7b..a40b314 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -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", |