mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 18:11:08 -05:00
80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
from django import forms
|
|
from .models import Location
|
|
|
|
class LocationForm(forms.ModelForm):
|
|
"""Form for creating and updating Location objects"""
|
|
|
|
class Meta:
|
|
model = Location
|
|
fields = [
|
|
'name',
|
|
'location_type',
|
|
'latitude',
|
|
'longitude',
|
|
'street_address',
|
|
'city',
|
|
'state',
|
|
'country',
|
|
'postal_code',
|
|
]
|
|
widgets = {
|
|
'latitude': forms.NumberInput(attrs={
|
|
'step': 'any',
|
|
'class': 'location-lat',
|
|
'data-map-target': 'lat'
|
|
}),
|
|
'longitude': forms.NumberInput(attrs={
|
|
'step': 'any',
|
|
'class': 'location-lng',
|
|
'data-map-target': 'lng'
|
|
})
|
|
}
|
|
|
|
class LocationSearchForm(forms.Form):
|
|
"""Form for searching locations using OpenStreetMap Nominatim"""
|
|
|
|
query = forms.CharField(
|
|
max_length=255,
|
|
required=True,
|
|
widget=forms.TextInput(attrs={
|
|
'placeholder': 'Search for a location...',
|
|
'class': 'location-search',
|
|
'data-action': 'search#query',
|
|
'autocomplete': 'off'
|
|
})
|
|
)
|
|
|
|
# Hidden fields for storing selected location data
|
|
selected_lat = forms.DecimalField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedLat'})
|
|
)
|
|
selected_lng = forms.DecimalField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedLng'})
|
|
)
|
|
selected_name = forms.CharField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedName'})
|
|
)
|
|
selected_address = forms.CharField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedAddress'})
|
|
)
|
|
selected_city = forms.CharField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedCity'})
|
|
)
|
|
selected_state = forms.CharField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedState'})
|
|
)
|
|
selected_country = forms.CharField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedCountry'})
|
|
)
|
|
selected_postal_code = forms.CharField(
|
|
required=False,
|
|
widget=forms.HiddenInput(attrs={'data-search-target': 'selectedPostalCode'})
|
|
)
|