forked from expo/troggle
Started removing foreignkeys to caves, to achieve greater flexability. Some log book entries stuff may be broken. Add ability to make new caves and entrances via website.
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user