From 599c59454a12a0cc4f9c7b0d88a5c1d8e054d2f2 Mon Sep 17 00:00:00 2001 From: Martin Green Date: Sat, 7 Jan 2012 19:05:25 +0000 Subject: Render a cave editing page. Nb it does not do save anything yet. --- core/views_caves.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'core/views_caves.py') diff --git a/core/views_caves.py b/core/views_caves.py index 9fcf9b4..71fe668 100644 --- a/core/views_caves.py +++ b/core/views_caves.py @@ -1,10 +1,11 @@ -from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription +from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, Entrance from troggle.core.forms import CaveForm import troggle.core.models as models import troggle.settings as settings from troggle.helper import login_required_if_public from django.forms.models import formset_factory +from django import forms from django.core.urlresolvers import reverse from utils import render_with_context # see views_logbooks for explanation on this. from django.http import HttpResponseRedirect @@ -63,16 +64,26 @@ def caveLogbook(request, slug): def caveSlug(request, slug): cave = Cave.objects.get(slug = slug) if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated(): - return render_with_context(request,'nonpublic.html', {'instance': cave}) + return render_with_context(request,'nonpublic.html', {'instance': cave, 'cave_editable': slug}) else: - return render_with_context(request,'cave.html', {'cave': cave}) + return render_with_context(request,'cave.html', {'cave': cave, 'cave_editable': slug}) @login_required_if_public -def editCave(request, slug=None): - form = CaveForm() +def edit_cave(request, slug=None): + cave = Cave.objects.get(slug = slug) + form = CaveForm(instance=cave) + class CaveAndEntranceForm(forms.Form): + entrance = forms.ChoiceField(choices=[("", "-----")] + [(x.slug, x.slug) for x in Entrance.objects.all()]) + entrance_letter = forms.CharField(max_length=20) + non_public = forms.BooleanField() + CaveAndEntranceFormSet = formset_factory(CaveAndEntranceForm) + i = [{"entrance": x.entrance.slug, "entrance_letter": x.entrance_letter, "non_public": x.non_public} for x in cave.caveandentrance_set.all()] + ceFormSet = CaveAndEntranceFormSet(initial=i) return render_with_context(request, - 'editcave.html', - {'form': form}) + 'editcave2.html', + {'form': form, + 'caveAndEntranceFormSet': ceFormSet + }) def qm(request,cave_id,qm_id,year,grade=None): year=int(year) -- cgit v1.2.3