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.py25
1 files changed, 18 insertions, 7 deletions
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)