mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2026-05-18 23:31:29 +01:00
81 lines
3.6 KiB
Python
81 lines
3.6 KiB
Python
from django import forms
|
|
|
|
class NewHoleForm(forms.Form):
|
|
# Identification
|
|
tag_id = forms.CharField(label="New Cave Identifier",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 2029-XY-03'}),
|
|
max_length=50, required=True)
|
|
tag_text = forms.CharField(label="Exact text on tag if placed",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 29 CUCC 35'}),
|
|
max_length=50, required=False)
|
|
# Naming
|
|
proposed_name = forms.CharField(label="Proposed Cave Name",
|
|
max_length=90, required=True)
|
|
|
|
# Discovery
|
|
discoverers = forms.CharField(label="Discoverers / Investigators today",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. Dour, Animal, Becka'}),
|
|
max_length=255, required=True)
|
|
discovery_date = forms.DateField(label="Trip date", widget=forms.DateInput(attrs={'type': 'date'}), required=True)
|
|
surface_wallet = forms.CharField(label="Wallet used to find the entrance (if any)",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 2005 # 63'}),
|
|
max_length=100, required=False)
|
|
|
|
# GPS Data
|
|
gps_owner = forms.CharField(label="GPS: Whose device?",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. Becka'}),
|
|
max_length=100, required=True)
|
|
gps_lat = forms.FloatField(
|
|
label="GPS Latitude",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 47.6964483 N'}), required=True
|
|
)
|
|
gps_long = forms.FloatField(
|
|
label="GPS Longitude",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 13.8160500 E'}), required=True
|
|
)
|
|
gps_time = forms.TimeField(
|
|
label="Time of GPS reading",
|
|
widget=forms.TimeInput(attrs={'type': 'time'})
|
|
)
|
|
gps_screenshot = forms.BooleanField(label="Screenshot taken of GPSTest while GPS device in situ?", required=False)
|
|
gps_photo = forms.BooleanField(label="Photo taken of GPS device in situ with view of entrance?", required=False)
|
|
|
|
# Navigation
|
|
dist_to_ent = forms.FloatField(label="Distance from GPS to entrance (m)",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 11.5'})
|
|
)
|
|
bear_to_ent = forms.FloatField(label="Compass bearing to entrance (degrees)",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 217'})
|
|
)
|
|
|
|
# Status & Surveys
|
|
is_explored = forms.BooleanField(label="Exploration complete?", required=False)
|
|
ug_survey_done = forms.BooleanField(label="Survex data recorded?", required=False)
|
|
ug_survey_wallet = forms.CharField(label="Wallet id for all this data",
|
|
widget=forms.TextInput(attrs={'placeholder': 'e.g. 2029 # 88'}),
|
|
required=True)
|
|
|
|
# Media: Entrance Photo (Replaced dropdown with checkboxes)
|
|
photo_ent_no = forms.BooleanField(label="Entrance photos ?", required=False)
|
|
photo_ent_who = forms.CharField(label="Who has entrance photos ?", required=False)
|
|
|
|
# Media: Tag Photo (Replaced dropdown with checkboxes)
|
|
photo_tag_no = forms.BooleanField(label="Photos of tag ?", required=False)
|
|
photo_tag_who = forms.CharField(label="Who has tag photos ?", required=False)
|
|
|
|
|
|
|
|
from django.shortcuts import render, redirect
|
|
from django.contrib import messages
|
|
|
|
def new_hole(request):
|
|
if request.method == 'POST':
|
|
form = NewHoleForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
# Data processing to models and filesystem will go here
|
|
messages.success(request, "New cave data successfully received.")
|
|
return redirect('some_success_url')
|
|
else:
|
|
form = NewHoleForm()
|
|
|
|
return render(request, 'new_hole.html', {'form': form}) |