diff --git a/ram/consist/migrations/0008_alter_consist_options.py b/ram/consist/migrations/0008_alter_consist_options.py new file mode 100644 index 0000000..44edf97 --- /dev/null +++ b/ram/consist/migrations/0008_alter_consist_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.3 on 2023-01-02 15:03 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("consist", "0007_alter_consist_image"), + ] + + operations = [ + migrations.AlterModelOptions( + name="consist", + options={"ordering": ["company", "-creation_time"]}, + ), + ] diff --git a/ram/consist/models.py b/ram/consist/models.py index 85608da..a21f78d 100644 --- a/ram/consist/models.py +++ b/ram/consist/models.py @@ -32,7 +32,7 @@ class Consist(models.Model): return reverse("consist", kwargs={"uuid": self.uuid}) class Meta: - ordering = ["creation_time"] + ordering = ["company", "-creation_time"] class ConsistItem(models.Model): diff --git a/ram/portal/templates/base.html b/ram/portal/templates/base.html index 6ecfcfe..c575a38 100644 --- a/ram/portal/templates/base.html +++ b/ram/portal/templates/base.html @@ -100,7 +100,7 @@
{% for i in r.image.all %} - {% if i.is_thumbnail %}Card image cap{% endif %} + {% if forloop.first %}Card image cap{% endif %} {% endfor %}

diff --git a/ram/portal/templates/consist.html b/ram/portal/templates/consist.html index 1e763b0..668d509 100644 --- a/ram/portal/templates/consist.html +++ b/ram/portal/templates/consist.html @@ -15,7 +15,7 @@

{% for i in r.rolling_stock.image.all %} - {% if i.is_thumbnail %}Card image cap{% endif %} + {% if forloop.first %}Card image cap{% endif %} {% endfor %}

diff --git a/ram/portal/templates/consists.html b/ram/portal/templates/consists.html index c3850b4..6b1d49d 100644 --- a/ram/portal/templates/consists.html +++ b/ram/portal/templates/consists.html @@ -10,7 +10,7 @@ {% else %} {% with c.consist_item.first.rolling_stock as r %} {% for i in r.image.all %} - {% if i.is_thumbnail %}Card image cap{% endif %} + {% if forloop.first %}Card image cap{% endif %} {% endfor %} {% endwith %} {% endif %} diff --git a/ram/ram/__init__.py b/ram/ram/__init__.py index 72b6404..ea9d82b 100644 --- a/ram/ram/__init__.py +++ b/ram/ram/__init__.py @@ -1,4 +1,4 @@ from ram.utils import git_suffix -__version__ = "0.0.23" +__version__ = "0.0.24" __version__ += git_suffix(__file__) diff --git a/ram/roster/admin.py b/ram/roster/admin.py index 28687fa..3343c9a 100644 --- a/ram/roster/admin.py +++ b/ram/roster/admin.py @@ -1,4 +1,6 @@ from django.contrib import admin +from adminsortable2.admin import SortableAdminBase, SortableInlineAdminMixin + from roster.models import ( RollingClass, RollingClassProperty, @@ -35,7 +37,7 @@ class RollingStockDocInline(admin.TabularInline): classes = ["collapse"] -class RollingStockImageInline(admin.TabularInline): +class RollingStockImageInline(SortableInlineAdminMixin, admin.TabularInline): model = RollingStockImage min_num = 0 extra = 0 @@ -93,7 +95,7 @@ class RollingJournalDocumentAdmin(admin.ModelAdmin): @admin.register(RollingStock) -class RollingStockAdmin(admin.ModelAdmin): +class RollingStockAdmin(SortableAdminBase, admin.ModelAdmin): inlines = ( RollingStockPropertyInline, RollingStockImageInline, diff --git a/ram/roster/migrations/0016_alter_rollingstockimage_options_and_more.py b/ram/roster/migrations/0016_alter_rollingstockimage_options_and_more.py new file mode 100644 index 0000000..e0893eb --- /dev/null +++ b/ram/roster/migrations/0016_alter_rollingstockimage_options_and_more.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.3 on 2023-01-02 12:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("roster", "0015_alter_rollingstockimage_options"), + ] + + operations = [ + migrations.AlterModelOptions( + name="rollingstockimage", + options={"ordering": ["order"]}, + ), + migrations.AddField( + model_name="rollingstockimage", + name="order", + field=models.PositiveIntegerField(default=0), + ), + ] diff --git a/ram/roster/migrations/0017_remove_rollingstockimage_is_thumbnail.py b/ram/roster/migrations/0017_remove_rollingstockimage_is_thumbnail.py new file mode 100644 index 0000000..21112cd --- /dev/null +++ b/ram/roster/migrations/0017_remove_rollingstockimage_is_thumbnail.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.3 on 2023-01-02 15:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("roster", "0016_alter_rollingstockimage_options_and_more"), + ] + + operations = [ + migrations.RemoveField( + model_name="rollingstockimage", + name="is_thumbnail", + ), + ] diff --git a/ram/roster/models.py b/ram/roster/models.py index da0ca43..0e3d2c7 100644 --- a/ram/roster/models.py +++ b/ram/roster/models.py @@ -155,13 +155,13 @@ class RollingStockDocument(models.Model): class RollingStockImage(models.Model): + order = models.PositiveIntegerField(default=0, blank=False, null=False) rolling_stock = models.ForeignKey( RollingStock, on_delete=models.CASCADE, related_name="image" ) image = models.ImageField( upload_to="images/", storage=DeduplicatedStorage, null=True, blank=True ) - is_thumbnail = models.BooleanField() def image_thumbnail(self): return get_image_preview(self.image.url) @@ -171,15 +171,8 @@ class RollingStockImage(models.Model): def __str__(self): return "{0}".format(os.path.basename(self.image.name)) - def save(self, **kwargs): - if self.is_thumbnail: - RollingStockImage.objects.filter( - rolling_stock=self.rolling_stock - ).update(is_thumbnail=False) - super().save(**kwargs) - class Meta: - ordering = ["-is_thumbnail"] + ordering = ["order"] class RollingStockProperty(models.Model):