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.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/core/views_caves.py b/core/views_caves.py
index ae5f46f..2590cf1 100644
--- a/core/views_caves.py
+++ b/core/views_caves.py
@@ -1,4 +1,4 @@
-from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, Entrance, Area
+from troggle.core.models import CaveSlug, Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, EntranceSlug, Entrance, Area
from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, VersionControlCommentForm, EntranceForm
import troggle.core.models as models
import troggle.settings as settings
@@ -94,13 +94,22 @@ def caveSlug(request, slug):
@login_required_if_public
def edit_cave(request, slug=None):
- cave = Cave.objects.get(caveslug__slug = slug)
+ if slug is not None:
+ cave = Cave.objects.get(caveslug__slug = slug)
+ else:
+ cave = Cave()
if request.POST:
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():
- cave = form.save()
+ cave = form.save(commit = False)
+ cave.filename = form.cleaned_data["slug"] + ".html"
+ cave.save()
+ form.save_m2m()
+ if slug is None:
+ cs = CaveSlug(cave = cave, slug = form.cleaned_data["slug"], primary = True)
+ cs.save()
ceinsts = ceFormSet.save(commit=False)
for ceinst in ceinsts:
ceinst.cave = cave
@@ -121,12 +130,22 @@ def edit_cave(request, slug=None):
@login_required_if_public
def editEntrance(request, slug=None):
- entrance = Entrance.objects.get(entranceslug__slug = slug)
+ if slug is not None:
+ entrance = Entrance.objects.get(entranceslug__slug = slug)
+ else:
+ entrance = Entrance()
if request.POST:
form = EntranceForm(request.POST, instance = entrance)
versionControlForm = VersionControlCommentForm(request.POST)
if form.is_valid() and versionControlForm.is_valid():
- entrance = form.save()
+ entrance = form.save(commit = False)
+ entrance.filename = form.cleaned_data["slug"] + ".html"
+ if slug is None:
+ entrance.cached_primary_slug = form.cleaned_data["slug"]
+ entrance.save()
+ if slug is None:
+ es = EntranceSlug(entrance = entrance, slug = form.cleaned_data["slug"], primary = True)
+ es.save()
entrance.writeDataFile()
return HttpResponseRedirect("/" + entrance.url)
else: