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'}) )