diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2021-04-14 16:28:30 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2021-04-14 16:28:30 +0100 |
commit | d8b1d59b1221ac7885d6cf1b90cc2954c9b70139 (patch) | |
tree | c9e43f00158239df51c33d5d077f43011cb4df47 /core/views/caves.py | |
parent | 54d98f58f36b2681c7253dad76f87b72b65348a4 (diff) | |
download | troggle-d8b1d59b1221ac7885d6cf1b90cc2954c9b70139.tar.gz troggle-d8b1d59b1221ac7885d6cf1b90cc2954c9b70139.tar.bz2 troggle-d8b1d59b1221ac7885d6cf1b90cc2954c9b70139.zip |
Cave and Entrance forms tuned to user needs
Diffstat (limited to 'core/views/caves.py')
-rw-r--r-- | core/views/caves.py | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/core/views/caves.py b/core/views/caves.py index c0576c6..a791d80 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -152,7 +152,7 @@ def cave3d(request, cave_id=''): try: cave = getCave(cave_id) except ObjectDoesNotExist: - return None + return HttpResponseNotFound except Cave.MultipleObjectsReturned: # But only one might have survex data? So scan and return the first that works. caves = getCaves(cave_id) @@ -337,7 +337,10 @@ def caveLogbook(request, slug): def edit_cave(request, slug=None): '''This is the form that edits all the cave data and writes out an XML file in the :expoweb: repo folder The format for the file being saved is in templates/dataformat/cave.xml + + It does save the data into into the database directly, not by parsing the file. ''' + message = "" if slug is not None: cave = Cave.objects.get(caveslug__slug = slug) else: @@ -346,7 +349,8 @@ def edit_cave(request, slug=None): form = CaveForm(request.POST, instance=cave) ceFormSet = CaveAndEntranceFormSet(request.POST) versionControlForm = VersionControlCommentForm(request.POST) - if form.is_valid() and ceFormSet.is_valid() and versionControlForm.is_valid(): + if form.is_valid() and ceFormSet.is_valid(): + #print(f'! POST is valid. {cave}') cave = form.save(commit = False) if slug is None: for a in form.cleaned_data["area"]: @@ -367,23 +371,33 @@ def edit_cave(request, slug=None): ceinsts = ceFormSet.save(commit=False) for ceinst in ceinsts: ceinst.cave = cave - ceinst.save() + ceinst.save() cave.writeDataFile() - return HttpResponseRedirect("/" + cave.url) + return HttpResponseRedirect("/" + cave.url) + else: + message = f'! POST data is INVALID {cave}' + print(message) else: form = CaveForm(instance=cave) ceFormSet = CaveAndEntranceFormSet(queryset=cave.caveandentrance_set.all()) - versionControlForm = VersionControlCommentForm() + #versionControlForm = VersionControlCommentForm() return render(request, 'editcave2.html', - {'form': form, + {'form': form, 'cave': cave, 'message': message, 'caveAndEntranceFormSet': ceFormSet, - 'versionControlForm': versionControlForm + #'versionControlForm': versionControlForm }) @login_required_if_public def editEntrance(request, caveslug, slug=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 + The format for the file being saved is in templates/dataformat/entrance.xml + + It does save the data into into the database directly, not by parsing the file. + ''' + message = "" cave = Cave.objects.get(caveslug__slug = caveslug) if slug is not None: entrance = Entrance.objects.get(entranceslug__slug = slug) @@ -391,12 +405,12 @@ def editEntrance(request, caveslug, slug=None): entrance = Entrance() if request.POST: form = EntranceForm(request.POST, instance = entrance) - versionControlForm = VersionControlCommentForm(request.POST) + #versionControlForm = VersionControlCommentForm(request.POST) if slug is None: entletter = EntranceLetterForm(request.POST) else: entletter = None - if form.is_valid() and versionControlForm.is_valid() and (slug is not None or entletter.is_valid()): + if form.is_valid() and (slug is not None or entletter.is_valid()): entrance = form.save(commit = False) if slug is None: slugname = cave.slug() + entletter.cleaned_data["entrance_letter"] @@ -412,17 +426,20 @@ def editEntrance(request, caveslug, slug=None): el.save() entrance.writeDataFile() return HttpResponseRedirect("/" + cave.url) + else: + message = f'! POST data is INVALID {cave}' + print(message) else: form = EntranceForm(instance = entrance) - versionControlForm = VersionControlCommentForm() + #versionControlForm = VersionControlCommentForm() if slug is None: entletter = EntranceLetterForm(request.POST) else: entletter = None return render(request, 'editentrance.html', - {'form': form, - 'versionControlForm': versionControlForm, + {'form': form, 'cave': cave, 'message': message, + #'versionControlForm': versionControlForm, 'entletter': entletter }) |