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.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/core/views_caves.py b/core/views_caves.py
index 71fe668..8dc2ebe 100644
--- a/core/views_caves.py
+++ b/core/views_caves.py
@@ -1,5 +1,5 @@
from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, Entrance
-from troggle.core.forms import CaveForm
+from troggle.core.forms import CaveForm, CaveAndEntranceFormSet
import troggle.core.models as models
import troggle.settings as settings
from troggle.helper import login_required_if_public
@@ -42,6 +42,7 @@ def caveEntrance(request, slug):
return render_with_context(request,'nonpublic.html', {'instance': cave})
else:
return render_with_context(request,'cave_entrances.html', {'cave': cave})
+
def caveDescription(request, slug):
cave = Cave.objects.get(slug = slug)
if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
@@ -71,14 +72,17 @@ def caveSlug(request, slug):
@login_required_if_public
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)
+ if request.POST:
+ form = CaveForm(request.POST, instance=cave)
+ ceFormSet = CaveAndEntranceFormSet(request.POST)
+ else:
+ form = CaveForm(instance=cave)
+ 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,
'editcave2.html',
{'form': form,