summaryrefslogtreecommitdiffstats
path: root/core/views/caves.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2021-04-14 16:28:30 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2021-04-14 16:28:30 +0100
commitd8b1d59b1221ac7885d6cf1b90cc2954c9b70139 (patch)
treec9e43f00158239df51c33d5d077f43011cb4df47 /core/views/caves.py
parent54d98f58f36b2681c7253dad76f87b72b65348a4 (diff)
downloadtroggle-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.py41
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
})