Update migration files for Django 5.1.4; remove obsolete merge migrations and adjust history tracking context in templates

This commit is contained in:
pacnpal
2025-02-10 00:11:29 -05:00
parent 228eeeb3c8
commit 4b32580b13
44 changed files with 2353 additions and 2543 deletions

View File

@@ -1,8 +1,8 @@
from django.db import models
from django.utils.text import slugify
from django.contrib.contenttypes.fields import GenericRelation
from history_tracking.models import TrackedModel
import pghistory
from history_tracking.models import TrackedModel, DiffMixin
from .events import get_ride_display_changes, get_ride_model_display_changes
# Shared choices that will be used by multiple models
CATEGORY_CHOICES = [
@@ -15,7 +15,81 @@ CATEGORY_CHOICES = [
('OT', 'Other'),
]
@pghistory.track()
class RideEvent(models.Model, DiffMixin):
"""Event model for tracking Ride changes - uses existing pghistory table"""
pgh_id = models.AutoField(primary_key=True)
pgh_created_at = models.DateTimeField(auto_now_add=True)
pgh_label = models.TextField()
# Original model fields
id = models.BigIntegerField()
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=255)
description = models.TextField(blank=True)
category = models.CharField(max_length=2)
status = models.CharField(max_length=20)
post_closing_status = models.CharField(max_length=20, null=True)
opening_date = models.DateField(null=True)
closing_date = models.DateField(null=True)
status_since = models.DateField(null=True)
min_height_in = models.PositiveIntegerField(null=True)
max_height_in = models.PositiveIntegerField(null=True)
capacity_per_hour = models.PositiveIntegerField(null=True)
ride_duration_seconds = models.PositiveIntegerField(null=True)
average_rating = models.DecimalField(max_digits=3, decimal_places=2, null=True)
created_at = models.DateTimeField()
updated_at = models.DateTimeField()
# Foreign keys as IDs
park_id = models.BigIntegerField()
park_area_id = models.BigIntegerField(null=True)
manufacturer_id = models.BigIntegerField(null=True)
designer_id = models.BigIntegerField(null=True)
ride_model_id = models.BigIntegerField(null=True)
# Context fields
pgh_obj = models.ForeignKey('Ride', on_delete=models.CASCADE)
pgh_context = models.JSONField(null=True)
class Meta:
db_table = 'rides_rideevent'
managed = False
def get_display_changes(self) -> dict:
"""Returns human-readable changes"""
return get_ride_display_changes(self.diff_against_previous())
class RideModelEvent(models.Model, DiffMixin):
"""Event model for tracking RideModel changes - uses existing pghistory table"""
pgh_id = models.AutoField(primary_key=True)
pgh_created_at = models.DateTimeField(auto_now_add=True)
pgh_label = models.TextField()
# Original model fields
id = models.BigIntegerField()
name = models.CharField(max_length=255)
description = models.TextField(blank=True)
category = models.CharField(max_length=2)
created_at = models.DateTimeField()
updated_at = models.DateTimeField()
# Foreign keys as IDs
manufacturer_id = models.BigIntegerField(null=True)
# Context fields
pgh_obj = models.ForeignKey('RideModel', on_delete=models.CASCADE)
pgh_context = models.JSONField(null=True)
class Meta:
db_table = 'rides_ridemodelevent'
managed = False
def get_display_changes(self) -> dict:
"""Returns human-readable changes"""
return get_ride_model_display_changes(self.diff_against_previous())
class RideModel(TrackedModel):
"""
Represents a specific model/type of ride that can be manufactured by different companies.
@@ -24,10 +98,10 @@ class RideModel(TrackedModel):
name = models.CharField(max_length=255)
manufacturer = models.ForeignKey(
'companies.Manufacturer',
on_delete=models.SET_NULL, # Changed to SET_NULL since it's optional
on_delete=models.SET_NULL,
related_name='ride_models',
null=True, # Made optional
blank=True # Made optional
null=True,
blank=True
)
description = models.TextField(blank=True)
category = models.CharField(
@@ -36,8 +110,6 @@ class RideModel(TrackedModel):
default='',
blank=True
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['manufacturer', 'name']
@@ -46,10 +118,12 @@ class RideModel(TrackedModel):
def __str__(self) -> str:
return self.name if not self.manufacturer else f"{self.manufacturer.name} {self.name}"
@pghistory.track()
class Ride(TrackedModel):
"""Model for individual ride installations at parks"""
STATUS_CHOICES = [
('', 'Select status'),
('OPERATING', 'Operating'),
('CLOSED_TEMP', 'Temporarily Closed'),
('SBNO', 'Standing But Not Operating'),
('CLOSING', 'Closing'),
('CLOSED_PERM', 'Permanently Closed'),
@@ -91,7 +165,7 @@ class Ride(TrackedModel):
blank=True
)
designer = models.ForeignKey(
'designers.Designer', # Updated to point to the new Designer model
'designers.Designer',
on_delete=models.SET_NULL,
related_name='rides',
null=True,
@@ -130,8 +204,6 @@ class Ride(TrackedModel):
null=True,
blank=True
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
photos = GenericRelation('media.Photo')
reviews = GenericRelation('reviews.Review')
@@ -148,6 +220,7 @@ class Ride(TrackedModel):
super().save(*args, **kwargs)
class RollerCoasterStats(models.Model):
"""Model for tracking roller coaster specific statistics"""
TRACK_MATERIAL_CHOICES = [
('STEEL', 'Steel'),
('WOOD', 'Wood'),