diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2025-02-13 17:30:40 +0000 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2025-02-13 17:30:40 +0000 |
commit | 9fd86dc0c4576259028d2666c5360d1d60d380b0 (patch) | |
tree | c5438d59c659b97133079e4c80360debd75e15d0 /core/views | |
parent | ae36f1a9ce53f15cd083e4b5e8b7cf14be0208af (diff) | |
download | troggle-9fd86dc0c4576259028d2666c5360d1d60d380b0.tar.gz troggle-9fd86dc0c4576259028d2666c5360d1d60d380b0.tar.bz2 troggle-9fd86dc0c4576259028d2666c5360d1d60d380b0.zip |
cookie and logon working nicely together: cave & entrance
Diffstat (limited to 'core/views')
-rw-r--r-- | core/views/caves.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/core/views/caves.py b/core/views/caves.py index 75971bb..c4f5a4c 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -24,9 +24,9 @@ from troggle.core.utils import ( COOKIE_MAX_AGE, WriteAndCommitError, current_expo, - get_cookie, - git_string, + get_editor, write_and_commit, + is_identified_user, ) from troggle.core.views import expo from troggle.parsers.caves import read_cave, read_entrance @@ -493,7 +493,8 @@ def edit_cave(request, path="", slug=None): if not (cave:= get_cave_from_slug(slug)): # walrus operator return render(request, "errors/badslug.html", {"badslug": f"for cave {slug} - from edit_cave()"}) - editor = get_cookie(request) + identified_login = is_identified_user(request.user) + editor = get_editor(request) if request.POST: form = CaveForm(request.POST, instance=cave) @@ -554,9 +555,9 @@ def edit_cave(request, path="", slug=None): print(f"edit_cave(): EXCEPTION attempting to read_cave({cave.filename})\n{e}") raise - form = CaveForm(instance=cave, initial={'cave_slug': cave.slug(), "who_are_you":editor}) + form = CaveForm(instance=cave, initial={'cave_slug': cave.slug(), "identified_login": identified_login, "who_are_you":editor}) else: - form = CaveForm(initial={"who_are_you":editor}) + form = CaveForm(initial={"identified_login": identified_login, "who_are_you":editor}) # The way formsets are rendered changed between Django 4 and Django 5 major, _, _, _, _ = django.VERSION @@ -565,6 +566,9 @@ def edit_cave(request, path="", slug=None): else: tabletype = "div" + if identified_login: + # disable editing the git id string as we get it from the logged-on user data + form.fields["who_are_you"].widget.attrs["readonly"]="readonly" return render( request, "editcave.html", @@ -662,7 +666,8 @@ def edit_entrance(request, path="", caveslug=None, entslug=None): imgpath = Path(path) / cave.areacode / cave.number() print(f"Edit Entrance {imgpath=}") - editor = get_cookie(request) + identified_login = is_identified_user(request.user) + editor = get_editor(request) if request.POST: print(f"POST Online edit of entrance: '{entrance}' where {cave=}") @@ -771,7 +776,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, initial={"who_are_you":editor}) + entform = EntranceForm(instance=entrance, initial={"identified_login": identified_login, "who_are_you":editor}) if entslug is None: entletterform = EntranceLetterForm() # print(f" Getting entletter from EntranceLetterForm") @@ -782,9 +787,12 @@ def edit_entrance(request, path="", caveslug=None, entslug=None): print(f" Blank value: getting entletter from EntranceLetterForm") print(f"{entletter=} ") else: - entform = EntranceForm(initial={"who_are_you":editor}) + entform = EntranceForm(initial={"identified_login": identified_login, "who_are_you":editor}) entletterform = EntranceLetterForm() + if identified_login: + # disable editing the git id string as we get it from the logged-on user data + entform.fields["who_are_you"].widget.attrs["readonly"]="readonly" return render( request, "editentrance.html", |