summaryrefslogtreecommitdiffstats
path: root/core/views
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2025-02-13 17:30:40 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2025-02-13 17:30:40 +0000
commit9fd86dc0c4576259028d2666c5360d1d60d380b0 (patch)
treec5438d59c659b97133079e4c80360debd75e15d0 /core/views
parentae36f1a9ce53f15cd083e4b5e8b7cf14be0208af (diff)
downloadtroggle-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.py24
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",