Improve road number sorting and enforce company on consists

This commit is contained in:
2022-07-15 18:10:18 +02:00
parent e55f953c8a
commit 70c12c69b2
5 changed files with 64 additions and 6 deletions

View File

@@ -2,9 +2,9 @@ import os
from uuid import uuid4
from django.db import models
from django.urls import reverse
from django.dispatch import receiver
# from django.core.files.storage import FileSystemStorage
# from django.dispatch import receiver
from ram.utils import get_image_preview
from metadata.models import (
@@ -75,6 +75,7 @@ class RollingStock(models.Model):
verbose_name="Class",
)
road_number = models.CharField(max_length=128, unique=False)
road_number_cleaned = models.CharField(max_length=128, unique=False)
manufacturer = models.ForeignKey(
Manufacturer,
on_delete=models.CASCADE,
@@ -99,7 +100,7 @@ class RollingStock(models.Model):
updated_time = models.DateTimeField(auto_now=True)
class Meta:
ordering = ["rolling_class", "road_number"]
ordering = ["rolling_class", "road_number_cleaned"]
verbose_name_plural = "Rolling stock"
def __str__(self):
@@ -115,6 +116,11 @@ class RollingStock(models.Model):
return str(self.rolling_class.company)
@receiver(models.signals.pre_save, sender=RollingStock)
def pre_save_running_number(sender, instance, *args, **kwargs):
instance.road_number_cleaned = instance.road_number.lstrip("#").lstrip("0")
class RollingStockDocument(models.Model):
rolling_stock = models.ForeignKey(
RollingStock, on_delete=models.CASCADE, related_name="document"