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 @@
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 @@
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 %}{% endif %}
+ {% if forloop.first %}
{% 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):