Files
thrillwiki_django_no_react/scripts/create_initial_data.py

101 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from django.utils import timezone
from django.contrib.contenttypes.models import ContentType
from django.contrib.gis.geos import Point
from parks.models import Park
from rides.models import Ride, RideModel, RollerCoasterStats
from companies.models import Manufacturer
from location.models import Location
# Create Cedar Point
park, _ = Park.objects.get_or_create(
name="Cedar Point",
slug="cedar-point",
defaults={
"description": "Cedar Point is a 364-acre amusement park located on a Lake Erie peninsula in Sandusky, Ohio.",
"website": "https://www.cedarpoint.com",
"size_acres": 364,
"opening_date": timezone.datetime(1870, 1, 1).date(), # Cedar Point opened in 1870
}
)
# Create location for Cedar Point
Location.objects.get_or_create(
content_type=ContentType.objects.get_for_model(Park),
object_id=park.id,
defaults={
"name": "Cedar Point",
"location_type": "amusement_park",
"street_address": "1 Cedar Point Dr",
"city": "Sandusky",
"state": "OH",
"postal_code": "44870",
"country": "USA",
"latitude": 41.4822,
"longitude": -82.6839,
"point": Point(-82.6839, 41.4822) # longitude, latitude
}
)
# Create Intamin as manufacturer
bm, _ = Manufacturer.objects.get_or_create(
name="Intamin",
slug="intamin",
defaults={
"description": "Intamin Amusement Rides is a design company known for creating some of the most thrilling and innovative roller coasters in the world.",
"website": "https://www.intaminworldwide.com"
}
)
# Create Giga Coaster model
giga_model, _ = RideModel.objects.get_or_create(
name="Giga Coaster",
manufacturer=bm,
defaults={
"description": "A roller coaster type characterized by a height between 300399 feet and a complete circuit.",
"category": "RC" # Roller Coaster
}
)
# Create Millennium Force
millennium, _ = Ride.objects.get_or_create(
name="Millennium Force",
slug="millennium-force",
defaults={
"description": (
"Millennium Force is a steel roller coaster located at Cedar Point amusement park in Sandusky, Ohio. "
"It was built by Intamin of Switzerland and opened on May 13, 2000 as the world's first giga coaster, "
"a class of roller coasters having a height between 300 and 399 feet and a complete circuit."
),
"park": park,
"category": "RC",
"manufacturer": bm,
"ride_model": giga_model,
"status": "OPERATING",
"opening_date": timezone.datetime(2000, 5, 13).date(),
"min_height_in": 48, # 48 inches minimum height
"capacity_per_hour": 1300,
"ride_duration_seconds": 120 # 2 minutes
}
)
# Create stats for Millennium Force
RollerCoasterStats.objects.get_or_create(
ride=millennium,
defaults={
"height_ft": 310,
"length_ft": 6595,
"speed_mph": 93,
"inversions": 0,
"ride_time_seconds": 120,
"track_material": "STEEL",
"roller_coaster_type": "SITDOWN",
"max_drop_height_ft": 300,
"launch_type": "CHAIN",
"train_style": "Open-air stadium seating",
"trains_count": 3,
"cars_per_train": 9,
"seats_per_car": 4
}
)
print("Initial data created successfully!")