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