summaryrefslogtreecommitdiffstats
path: root/core/views/caves.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2023-04-22 03:26:53 +0100
committerPhilip Sargent <philip.sargent@gmail.com>2023-04-22 03:26:53 +0100
commit94b8b357fb646a0d777d092655c07fb8f467e2cd (patch)
tree0af9e8ec8e56549dd3fd353a25f3f1a22d33aafe /core/views/caves.py
parent2ed66fe3d0c24ba993425947ee7cd0986ecba83c (diff)
downloadtroggle-94b8b357fb646a0d777d092655c07fb8f467e2cd.tar.gz
troggle-94b8b357fb646a0d777d092655c07fb8f467e2cd.tar.bz2
troggle-94b8b357fb646a0d777d092655c07fb8f467e2cd.zip
Fix entrance edit too, saving slug now
Diffstat (limited to 'core/views/caves.py')
-rw-r--r--core/views/caves.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/core/views/caves.py b/core/views/caves.py
index 07ea315..e053ffd 100644
--- a/core/views/caves.py
+++ b/core/views/caves.py
@@ -376,8 +376,7 @@ def edit_cave(request, path="", slug=None):
ceinst.save()
try:
cave_file = cave.file_output()
- # print(cave_file)
- write_and_commit([cave_file], f"Online edit of {cave}")
+ write_and_commit([cave_file], f"Online edit of cave {cave}")
# leave other exceptions unhandled so that they bubble up to user interface
except PermissionError:
message = f"CANNOT save this file.\nPERMISSIONS incorrectly set on server for this file {cave.filename}. Ask a nerd to fix this."
@@ -411,7 +410,7 @@ def edit_cave(request, path="", slug=None):
@login_required_if_public
-def edit_entrance(request, path="", caveslug=None, slug=None):
+def edit_entrance(request, path="", caveslug=None, entslug=None):
"""This is the form that edits the entrance data for a single entrance and writes out
an XML file in the :expoweb: repo folder
@@ -425,9 +424,15 @@ def edit_entrance(request, path="", caveslug=None, slug=None):
try:
cave = Cave.objects.get(caveslug__slug=caveslug)
except:
- return render(request, "errors/badslug.html", {"badslug": f"{slug} {caveslug} - from edit_entrance()"})
+ return render(request, "errors/badslug.html", {"badslug": f"for cave {caveslug} - from edit_entrance()"})
- if slug:
+ try:
+ entrance = Entrance.objects.get(slug=entslug)
+ except:
+ return render(request, "errors/badslug.html", {"badslug": f"for entrance {slug} - from edit_entrance()"})
+
+ if entslug:
+ # print(f"{caveslug=} {entslug=} {path=}")
caveAndEntrance = CaveAndEntrance.objects.get(entrance=entrance, cave=cave)
entlettereditable = False
else:
@@ -441,24 +446,31 @@ def edit_entrance(request, path="", caveslug=None, slug=None):
if form.is_valid() and entletter.is_valid():
entrance = form.save(commit=False)
entrance_letter = entletter.save(commit=False)
- if slug is None:
+ print(f"- POST {caveslug=} {entslug=} {path=}")
+ if entslug is None:
if entletter.cleaned_data["entrance_letter"]:
slugname = cave.slug() + entletter.cleaned_data["entrance_letter"]
else:
slugname = cave.slug()
+ entrance.slug = slugname
entrance.cached_primary_slug = slugname
entrance.filename = slugname + ".html"
entrance.save()
entrance_file = entrance.file_output()
+ print(f"Online edit of entrance {entrance.slug}")
cave_file = cave.file_output()
- write_and_commit([entrance_file, cave_file], f"Online edit of {cave}{entletter}")
entrance.save()
- if slug is None:
+ write_and_commit([entrance_file, cave_file], f"Online edit of entrance {entrance.slug}")
+ if entslug is None:
entrance_letter.save()
return HttpResponseRedirect("/" + cave.url)
else:
+ # re-read entrance data from file.
+ filename = str(entrance.slug +".html")
+ readentrance(filename, ent=entrance)
+
form = EntranceForm(instance=entrance)
- if slug is None:
+ if entslug is None:
entletter = EntranceLetterForm()
else:
entletter = caveAndEntrance.entrance_letter