summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/forms.py38
-rw-r--r--core/views_caves.py22
-rw-r--r--templates/cave_entrances.html58
3 files changed, 86 insertions, 32 deletions
diff --git a/core/forms.py b/core/forms.py
index b16aa15..c38a699 100644
--- a/core/forms.py
+++ b/core/forms.py
@@ -9,34 +9,32 @@ from datetime import date
from tinymce.widgets import TinyMCE
class CaveForm(ModelForm):
- underground_description = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
- explorers = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- equipment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- survey = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- kataster_status = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- underground_centre_line = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- notes = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- references = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ underground_description = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
+ explorers = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ equipment = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ survey = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ kataster_status = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ underground_centre_line = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ notes = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+ references = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
class Meta:
model = 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)
+
class EntranceForm(ModelForm):
class Meta:
model = Entrance
-class CaveForm(ModelForm):
- underground_description = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
- explorers = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- equipment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- survey = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- kataster_status = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- underground_centre_line = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- notes = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- references = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
- class Meta:
- model = Cave
-
#class PersonForm(ModelForm):
# class Meta:
# model = Person
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,
diff --git a/templates/cave_entrances.html b/templates/cave_entrances.html
index dbd450d..e871e41 100644
--- a/templates/cave_entrances.html
+++ b/templates/cave_entrances.html
@@ -1,12 +1,64 @@
<div id="entrances">
<p>{% if cave.entrances %}
<h2>Entrances</h2>
+ <ul>
{% for ent in cave.entrances %}
- <a href = "./{{ ent.entrance_letter|safe }}">{{ ent.entrance_letter|safe }}</a>
+ <li>
+ {{ ent.entrance_letter|safe }}
+ {% if ent.entrance.name %}
+ {{ ent.entrance.name|safe }}
+ {% endif %}
+ <dl>
{% if ent.entrance.marking %}
- Marking: {{ ent.entrance.marking_val|safe }}
+ <dt>Marking</dt><dd>{{ ent.entrance.marking_val|safe }}</dd>
{% endif %}
- <br>
+ {% if ent.entrance.marking_comment %}
+ <dt>Marking Comment</dt><dd>{{ ent.entrance.marking_comment|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.findability %}
+ <dt>Findability</dt><dd>{{ ent.entrance.findability_val|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.findability_comment %}
+ <dt>Findability Comment</dt><dd>{{ ent.entrance.findability_comment|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.location_description %}
+ <dt>Location</dt><dd>{{ ent.entrance.location_description|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.approach %}
+ <dt>Approach</dt><dd>{{ ent.entrance.approach|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.map_description %}
+ <dt>Map</dt><dd>{{ ent.entrance.map_description|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.underground_description %}
+ <dt>Underground</dt><dd>{{ ent.entrance.underground_description|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.photo %}
+ <dt>Photo</dt><dd>{{ ent.entrance.photo|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.entrance_description %}
+ <dt>Description</dt><dd>{{ ent.entrance.entrance_description|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.explorers %}
+ <dt>Explorers</dt><dd>{{ ent.entrance.explorers|safe }}</dd>
+ {% endif %}
+ {% if ent.entrance.northing %}
+ <dt>Location</dt><dd>{{ ent.entrance.northing|safe }}, {{ ent.entrance.easting|safe }}, {{ ent.entrance.alt|safe }}m</</dd>
+ {% endif %}
+ {% if ent.entrance.tag_station %}
+ <dt>Tag Location</dt><dd>{{ ent.entrance.tag_station }}{{ ent.entrance.tag.y|safe }}, {{ ent.entrance.tag.x|safe }}, {{ ent.entrance.tag.z|safe }}m</</dd>
+ {% endif %}
+ {% if ent.entrance.bearings %}
+ <dt>Bearings</dt><dd>{{ ent.entrance.bearings|safe }}</dd>
+ {% endif %}
+
+ {{ ent.entrance.tag_station|safe }}
+ {{ ent.entrance.exact_station|safe }}
+ {{ ent.entrance.other_station|safe }}
+ {{ ent.entrance.other_description|safe }}
+ </dl>
+ </li>
{% endfor %}
+ </ul>
{% endif %}</p>
</div>