diff options
Diffstat (limited to 'core/views_caves.py')
-rw-r--r-- | core/views_caves.py | 48 |
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): |