Render a cave editing page. Nb it does not do save anything yet.

This commit is contained in:
Martin Green
2012-01-07 19:05:25 +00:00
parent ab97e367cb
commit fac89bae30
6 changed files with 72 additions and 15 deletions

View File

@@ -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)