summaryrefslogtreecommitdiffstats
path: root/core/views_caves.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/views_caves.py')
-rw-r--r--core/views_caves.py48
1 files changed, 36 insertions, 12 deletions
diff --git a/core/views_caves.py b/core/views_caves.py
index 2590cf1..16dbaac 100644
--- a/core/views_caves.py
+++ b/core/views_caves.py
@@ -1,5 +1,5 @@
from troggle.core.models import CaveSlug, Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, EntranceSlug, Entrance, Area
-from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, VersionControlCommentForm, EntranceForm
+from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, VersionControlCommentForm, EntranceForm, EntranceLetterForm
import troggle.core.models as models
import troggle.settings as settings
from troggle.helper import login_required_if_public
@@ -104,11 +104,21 @@ def edit_cave(request, slug=None):
versionControlForm = VersionControlCommentForm(request.POST)
if form.is_valid() and ceFormSet.is_valid() and versionControlForm.is_valid():
cave = form.save(commit = False)
- cave.filename = form.cleaned_data["slug"] + ".html"
+ if slug is None:
+ for a in form.cleaned_data["area"]:
+ if a.kat_area():
+ myArea = a.kat_area()
+ if form.cleaned_data["kataster_number"]:
+ myslug = "%s-%s" % (myArea, form.cleaned_data["kataster_number"])
+ else:
+ myslug = "%s-%s" % (myArea, form.cleaned_data["unofficial_number"])
+ else:
+ myslug = slug
+ cave.filename = myslug + ".html"
cave.save()
form.save_m2m()
if slug is None:
- cs = CaveSlug(cave = cave, slug = form.cleaned_data["slug"], primary = True)
+ cs = CaveSlug(cave = cave, slug = myslug, primary = True)
cs.save()
ceinsts = ceFormSet.save(commit=False)
for ceinst in ceinsts:
@@ -129,7 +139,8 @@ def edit_cave(request, slug=None):
})
@login_required_if_public
-def editEntrance(request, slug=None):
+def editEntrance(request, caveslug, slug=None):
+ cave = Cave.objects.get(caveslug__slug = caveslug)
if slug is not None:
entrance = Entrance.objects.get(entranceslug__slug = slug)
else:
@@ -137,25 +148,38 @@ def editEntrance(request, slug=None):
if request.POST:
form = EntranceForm(request.POST, instance = entrance)
versionControlForm = VersionControlCommentForm(request.POST)
- if form.is_valid() and versionControlForm.is_valid():
+ 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()):
entrance = form.save(commit = False)
- entrance.filename = form.cleaned_data["slug"] + ".html"
if slug is None:
- entrance.cached_primary_slug = form.cleaned_data["slug"]
+ slugname = cave.slug() + entletter.cleaned_data["entrance_letter"]
+ entrance.cached_primary_slug = slugname
+ entrance.filename = slugname + ".html"
entrance.save()
if slug is None:
- es = EntranceSlug(entrance = entrance, slug = form.cleaned_data["slug"], primary = True)
- es.save()
+ es = EntranceSlug(entrance = entrance, slug = slugname, primary = True)
+ es.save()
+ el = entletter.save(commit = False)
+ el.cave = cave
+ el.entrance = entrance
+ el.save()
entrance.writeDataFile()
- return HttpResponseRedirect("/" + entrance.url)
+ return HttpResponseRedirect("/" + cave.url)
else:
form = EntranceForm(instance = entrance)
versionControlForm = VersionControlCommentForm()
-
+ if slug is None:
+ entletter = EntranceLetterForm(request.POST)
+ else:
+ entletter = None
return render_with_context(request,
'editentrance.html',
{'form': form,
- 'versionControlForm': versionControlForm
+ 'versionControlForm': versionControlForm,
+ 'entletter': entletter
})
def qm(request,cave_id,qm_id,year,grade=None):