mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 10:51:09 -05:00
major changes, including tailwind v4
This commit is contained in:
@@ -4,7 +4,7 @@ from autocomplete import AutocompleteWidget
|
||||
|
||||
from core.forms import BaseAutocomplete
|
||||
from .models import Park
|
||||
from location.models import Location
|
||||
from .models.location import ParkLocation
|
||||
from .querysets import get_base_park_queryset
|
||||
|
||||
|
||||
@@ -262,13 +262,49 @@ class ParkForm(forms.ModelForm):
|
||||
}
|
||||
|
||||
# Handle location: update if exists, create if not
|
||||
if park.location.exists():
|
||||
location = park.location.first()
|
||||
try:
|
||||
park_location = park.location
|
||||
# Update existing location
|
||||
for key, value in location_data.items():
|
||||
setattr(location, key, value)
|
||||
location.save()
|
||||
else:
|
||||
Location.objects.create(content_object=park, **location_data)
|
||||
if key in ['latitude', 'longitude'] and value:
|
||||
continue # Handle coordinates separately
|
||||
if hasattr(park_location, key):
|
||||
setattr(park_location, key, value)
|
||||
|
||||
# Handle coordinates if provided
|
||||
if 'latitude' in location_data and 'longitude' in location_data:
|
||||
if location_data['latitude'] and location_data['longitude']:
|
||||
park_location.set_coordinates(
|
||||
float(location_data['latitude']),
|
||||
float(location_data['longitude'])
|
||||
)
|
||||
park_location.save()
|
||||
except ParkLocation.DoesNotExist:
|
||||
# Create new ParkLocation
|
||||
coordinates_data = {}
|
||||
if 'latitude' in location_data and 'longitude' in location_data:
|
||||
if location_data['latitude'] and location_data['longitude']:
|
||||
coordinates_data = {
|
||||
'latitude': float(location_data['latitude']),
|
||||
'longitude': float(location_data['longitude'])
|
||||
}
|
||||
|
||||
# Remove coordinate fields from location_data for creation
|
||||
creation_data = {k: v for k, v in location_data.items()
|
||||
if k not in ['latitude', 'longitude']}
|
||||
creation_data.setdefault('country', 'USA')
|
||||
|
||||
park_location = ParkLocation.objects.create(
|
||||
park=park,
|
||||
**creation_data
|
||||
)
|
||||
|
||||
if coordinates_data:
|
||||
park_location.set_coordinates(
|
||||
coordinates_data['latitude'],
|
||||
coordinates_data['longitude']
|
||||
)
|
||||
park_location.save()
|
||||
|
||||
if commit:
|
||||
park.save()
|
||||
|
||||
Reference in New Issue
Block a user