nearly there, created auto file

This commit is contained in:
2026-05-10 18:00:39 +01:00
parent dc48a55d7e
commit d1c5f802ee
2 changed files with 47 additions and 11 deletions
+45 -9
View File
@@ -2,6 +2,7 @@ import re
from django import forms
from django.core.exceptions import ValidationError
from django.utils.safestring import mark_safe
from django.conf import settings
from troggle.parsers.people import who_is_this
from core.position_utils import which_area # file-type import, not module type.
@@ -29,7 +30,7 @@ class NewHoleForm(forms.Form):
surface_wallet = forms.CharField(label="Old wallet used to find the entrance (if any)",
widget=forms.TextInput(attrs={'placeholder': 'e.g. 2005 # 63'}),
max_length=100, required=False)
survey_wallet = forms.CharField(label="New Wallet for all this data (must match date of trip)",
survey_wallet = forms.CharField(label="New Wallet for all this data (must match the year of the trip)",
widget=forms.TextInput(attrs={'placeholder': 'e.g. 2029 # 88'}),
required=True)
@@ -292,23 +293,58 @@ from django.shortcuts import render, redirect
from django.contrib import messages
def new_hole(request):
areacode = None
areatext = None
if request.method == 'POST':
form = NewHoleForm(request.POST, request.FILES)
lat = float(form.data['gps_lat'])
long = float(form.data['gps_long'])
valid, area = which_area(lat, long)
if valid:
areacode = f"in {area}"
areatext = f"in {area}"
else:
areacode = "Not in 1623 or 1626"
areatext = "Not in 1623 or 1626"
if form.is_valid():
# Data processing to models and filesystem will go here
messages.success(request, "New cave data successfully received.")
return redirect('new_hole')
return redirect('some_success_url')
process_new_hole(form, area)
messages.success(request, "New prospect save data successfully saved.")
success_url = "/walletedit/" + form.cleaned_data.get('survey_wallet').replace("#",":")
return redirect(success_url)
else:
form = NewHoleForm()
return render(request, 'new_hole.html', {'form': form, "areacode": areacode})
return render(request, 'new_hole.html', {'form': form, "areatext": areatext})
def get_auto_file():
auto_gps_file = settings.SURVEX_DATA / "fixedpts/gps/auto.svx"
if not auto_gps_file.exists():
auto_gps_file.parent.mkdir(parents=True, exist_ok=True)
with open(auto_gps_file, "w") as auto:
auto.write("""; Auto-created GPS fixes from 2026 for new caves in BOTH 1623 and 1626
*begin
*cs out UTM33
*cs LONG-LAT
""")
return auto_gps_file
def process_new_hole(form, area):
"""
Create a fixed point record by appending to :loser:/fixedpts/gps/auto.svx
Create a new Cave record with associated new Entrance record
Do a git commit (expoweb) of the new Cave and Entrance description files
Do a git commit (loser) of the new GPS position
(git commits use your logged-in identity in the "Who are you ?" field)
Update the database with this new information
"""
auto_gps_file = get_auto_file()
fix_line = f"*fix {area}.g{form.cleaned_data.get("cave_id")} {form.cleaned_data.get("gps_lat")} {form.cleaned_data.get("gps_long")} 0.0"
print(fix_line)
with open(auto_gps_file, "w") as auto:
auto.write(fix_line)
auto.write(f"*entrance {area}.g{form.cleaned_data.get("cave_id")}")
return
+2 -2
View File
@@ -102,7 +102,7 @@
<div class="field-{{ field.name }}">
{{ field.label_tag }}
{{ field }}<span class="unit-label"> E
{%if areacode %}&nbsp;&nbsp;&nbsp;&nbsp;<font color="blue"> {{areacode}}</font>{% endif %}</span>
{%if areatext %}&nbsp;&nbsp;&nbsp;&nbsp;<font color="blue"> {{areatext}}</font>{% endif %}</span>
{{ field.errors }}
</div>
</div> {# Standard Checkbox rendering #}
@@ -140,7 +140,7 @@
<li>Do a git commit (loser) of the new GPS position<br />
(git commits use your logged-in identity in the "Who are you ?" field)
<li>Update the database with this new information
<li>Create a new Wallet for this information and this trip (if it does not exist)
<li>Take you to a new Wallet for this information and this trip (if it does not exist)
<li>Return you to this form if any important data is missing or invalid
<li>If all is correct, will take you to the (new) Wallet for you to upload the photos
</ul>