Minor admin improvements and remove unique_together deprecated Meta

Also make rolling stock unique per consist
This commit is contained in:
2025-01-08 23:28:04 +01:00
parent f286ec9780
commit 26be22c0bd
11 changed files with 169 additions and 15 deletions

View File

@@ -0,0 +1,23 @@
# Generated by Django 5.1.4 on 2025-01-08 22:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("bookshelf", "0019_basebook_price"),
]
operations = [
migrations.AlterUniqueTogether(
name="basebookdocument",
unique_together=set(),
),
migrations.AddConstraint(
model_name="basebookdocument",
constraint=models.UniqueConstraint(
fields=("book", "file"), name="unique_book_file"
),
),
]

View File

@@ -96,7 +96,12 @@ class BaseBookDocument(Document):
class Meta:
verbose_name_plural = "Documents"
unique_together = ("book", "file")
constraints = [
models.UniqueConstraint(
fields=["book", "file"],
name="unique_book_file"
)
]
class BaseBookProperty(PropertyInstance):

View File

@@ -9,7 +9,14 @@ class ConsistItemInline(SortableInlineAdminMixin, admin.TabularInline):
min_num = 1
extra = 0
autocomplete_fields = ("rolling_stock",)
readonly_fields = ("preview", "published", "address", "type", "company", "era")
readonly_fields = (
"preview",
"published",
"address",
"type",
"company",
"era",
)
@admin.register(Consist)
@@ -19,9 +26,9 @@ class ConsistAdmin(SortableAdminBase, admin.ModelAdmin):
"creation_time",
"updated_time",
)
list_display = ("identifier", "published", "company", "era")
list_filter = list_display
search_fields = list_display
list_filter = ("company", "era", "published")
list_display = ("__str__",) + list_filter
search_fields = ("identifier",) + list_filter
save_as = True
fieldsets = (

View File

@@ -0,0 +1,20 @@
# Generated by Django 5.1.4 on 2025-01-08 21:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("consist", "0012_consist_published"),
("roster", "0030_rollingstock_price"),
]
operations = [
migrations.AddConstraint(
model_name="consistitem",
constraint=models.UniqueConstraint(
fields=("consist", "rolling_stock"), name="one_stock_per_consist"
),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.1.4 on 2025-01-08 22:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("consist", "0013_consistitem_one_stock_per_consist"),
]
operations = [
migrations.AlterField(
model_name="consistitem",
name="order",
field=models.PositiveIntegerField(default=1000),
),
]

View File

@@ -54,10 +54,20 @@ class ConsistItem(models.Model):
Consist, on_delete=models.CASCADE, related_name="consist_item"
)
rolling_stock = models.ForeignKey(RollingStock, on_delete=models.CASCADE)
order = models.PositiveIntegerField(default=0, blank=False, null=False)
order = models.PositiveIntegerField(
default=1000, # make sure it is always added at the end
blank=False,
null=False
)
class Meta(object):
class Meta:
ordering = ["order"]
constraints = [
models.UniqueConstraint(
fields=["consist", "rolling_stock"],
name="one_stock_per_consist"
)
]
def __str__(self):
return "{0}".format(self.rolling_stock)

View File

@@ -0,0 +1,33 @@
# Generated by Django 5.1.4 on 2025-01-08 22:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("metadata", "0019_alter_scale_gauge"),
]
operations = [
migrations.AlterUniqueTogether(
name="decoderdocument",
unique_together=set(),
),
migrations.AlterUniqueTogether(
name="rollingstocktype",
unique_together=set(),
),
migrations.AddConstraint(
model_name="decoderdocument",
constraint=models.UniqueConstraint(
fields=("decoder", "file"), name="unique_decoder_file"
),
),
migrations.AddConstraint(
model_name="rollingstocktype",
constraint=models.UniqueConstraint(
fields=("category", "type"), name="unique_category_type"
),
),
]

View File

@@ -117,7 +117,7 @@ class Decoder(models.Model):
blank=True,
)
class Meta(object):
class Meta:
ordering = ["manufacturer__name", "name"]
def __str__(self):
@@ -135,7 +135,12 @@ class DecoderDocument(Document):
)
class Meta:
unique_together = ("decoder", "file")
constraints = [
models.UniqueConstraint(
fields=["decoder", "file"],
name="unique_decoder_file"
)
]
def calculate_ratio(ratio):
@@ -189,8 +194,13 @@ class RollingStockType(models.Model):
)
slug = models.CharField(max_length=128, unique=True, editable=False)
class Meta(object):
unique_together = ("category", "type")
class Meta:
constraints = [
models.UniqueConstraint(
fields=["category", "type"],
name="unique_category_type"
)
]
ordering = ["order"]
def get_absolute_url(self):
@@ -210,7 +220,7 @@ class Tag(models.Model):
name = models.CharField(max_length=128, unique=True)
slug = models.CharField(max_length=128, unique=True)
class Meta(object):
class Meta:
ordering = ["name"]
def __str__(self):

View File

@@ -1,4 +1,4 @@
from ram.utils import git_suffix
__version__ = "0.15.3"
__version__ = "0.15.4"
__version__ += git_suffix(__file__)

View File

@@ -0,0 +1,23 @@
# Generated by Django 5.1.4 on 2025-01-08 22:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("roster", "0030_rollingstock_price"),
]
operations = [
migrations.AlterUniqueTogether(
name="rollingstockdocument",
unique_together=set(),
),
migrations.AddConstraint(
model_name="rollingstockdocument",
constraint=models.UniqueConstraint(
fields=("rolling_stock", "file"), name="unique_stock_file"
),
),
]

View File

@@ -156,8 +156,13 @@ class RollingStockDocument(Document):
RollingStock, on_delete=models.CASCADE, related_name="document"
)
class Meta(object):
unique_together = ("rolling_stock", "file")
class Meta:
constraints = [
models.UniqueConstraint(
fields=["rolling_stock", "file"],
name="unique_stock_file"
)
]
def rolling_stock_image_upload(instance, filename):