Refactor code structure and remove redundant sections for improved readability and maintainability

This commit is contained in:
pacnpal
2025-08-28 16:01:24 -04:00
parent 67db0aa46e
commit 02ac587216
12 changed files with 5342 additions and 77 deletions

View File

@@ -30,8 +30,8 @@ class RideModel(TrackedModel):
"""
name = models.CharField(max_length=255, help_text="Name of the ride model")
slug = models.SlugField(max_length=255, unique=True,
help_text="URL-friendly identifier")
slug = models.SlugField(max_length=255,
help_text="URL-friendly identifier (unique within manufacturer)")
manufacturer = models.ForeignKey(
Company,
on_delete=models.SET_NULL,
@@ -152,7 +152,10 @@ class RideModel(TrackedModel):
class Meta(TrackedModel.Meta):
ordering = ["manufacturer__name", "name"]
unique_together = ["manufacturer", "name"]
unique_together = [
["manufacturer", "name"],
["manufacturer", "slug"]
]
constraints = [
# Height range validation
models.CheckConstraint(
@@ -198,13 +201,16 @@ class RideModel(TrackedModel):
def save(self, *args, **kwargs) -> None:
if not self.slug:
from django.utils.text import slugify
base_slug = slugify(
f"{self.manufacturer.name if self.manufacturer else ''} {self.name}")
# Only use the ride model name for the slug, not manufacturer
base_slug = slugify(self.name)
self.slug = base_slug
# Ensure uniqueness
# Ensure uniqueness within the same manufacturer
counter = 1
while RideModel.objects.filter(slug=self.slug).exclude(pk=self.pk).exists():
while RideModel.objects.filter(
manufacturer=self.manufacturer,
slug=self.slug
).exclude(pk=self.pk).exists():
self.slug = f"{base_slug}-{counter}"
counter += 1