2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2026-02-08 18:51:24 +00:00

with more styling

This commit is contained in:
2025-12-28 01:16:14 +00:00
parent 8706991888
commit 136f9bf935
2 changed files with 84 additions and 28 deletions

View File

@@ -288,29 +288,70 @@ class EntranceLetterForm(ModelForm):
class NewProspectForm(forms.Form):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# If the form is bound (POSTed), update the field's value to uppercase
if self.is_bound:
data = self.data.copy()
ident = data.get('identifier')
if ident:
data['identifier'] = ident.upper()
self.data = data
# If initial data is present, ensure it's uppercase too
if 'identifier' in self.initial:
self.initial['identifier'] = self.initial['identifier'].upper()
def clean_identifier(self):
identifier = self.cleaned_data['identifier']
if identifier:
return identifier.upper()
return identifier
def clean_date_found(self):
date = self.cleaned_data['date_found']
if date.year <= 1990:
raise forms.ValidationError('Year must be after 1990.')
return date
date_found = forms.DateField(
label="Date Found",
widget=forms.DateInput(attrs={"type": "date"})
label="Date Found (YYYY-MM-DD)",
input_formats=["%Y-%m-%d"],
widget=forms.DateInput(attrs={
"type": "text",
"placeholder": "2025-08-23",
"pattern": "\\d{4}-\\d{2}-\\d{2}",
"title": "Enter date as YYYY-MM-DD (e.g. 2025-08-23)",
"size": 10,
"style": "width: 10ch; min-width: 0;"
})
)
area_code = forms.CharField(
area_code = forms.ChoiceField(
label="Area Code",
max_length=10
choices=[('1623', '1623'), ('1626', '1626')],
initial='1623',
widget=forms.Select(attrs={"style": "width: 6em; min-width: 0;"})
)
identifier = forms.CharField(
label="Identifier (e.g. 2025-AB-01)",
max_length=20
label="New cave identifier",
max_length=20,
widget=forms.TextInput(attrs={
"placeholder": "2025-AB-01",
"size": 10,
"style": "width: 10ch; min-width: 0;"
})
)
discovery_name = forms.CharField(
label="Discovery Name",
max_length=100
max_length=100,
widget=forms.TextInput(attrs={"placeholder": "Dreibierbittehohle"})
)
gps_lat = forms.DecimalField(
label="GPS Latitude",
max_digits=10,
decimal_places=7
decimal_places=7,
widget=forms.NumberInput(attrs={"placeholder": "47.687180"})
)
gps_long = forms.DecimalField(
label="GPS Longitude",
max_digits=10,
decimal_places=7
decimal_places=7,
widget=forms.NumberInput(attrs={"placeholder": "13.825211"})
)