diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2023-04-22 03:26:53 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2023-04-22 03:26:53 +0100 |
commit | 94b8b357fb646a0d777d092655c07fb8f467e2cd (patch) | |
tree | 0af9e8ec8e56549dd3fd353a25f3f1a22d33aafe /core/views/caves.py | |
parent | 2ed66fe3d0c24ba993425947ee7cd0986ecba83c (diff) | |
download | troggle-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.py | 30 |
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 |