forked from expo/troggle
Fix entrance edit too, saving slug now
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user