From 0fcf55fe618c387579f74671158a08795c4d0615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Fri, 8 Apr 2022 23:30:14 +0200 Subject: [PATCH] Select the thumbnail to be used --- ...lingstockimage_unique_together_and_more.py | 23 +++++++++++++++++++ dcc/roster/models.py | 10 +++++--- 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 dcc/roster/migrations/0002_alter_rollingstockimage_unique_together_and_more.py diff --git a/dcc/roster/migrations/0002_alter_rollingstockimage_unique_together_and_more.py b/dcc/roster/migrations/0002_alter_rollingstockimage_unique_together_and_more.py new file mode 100644 index 0000000..ed9c2da --- /dev/null +++ b/dcc/roster/migrations/0002_alter_rollingstockimage_unique_together_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.0.3 on 2022-04-08 21:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('roster', '0001_initial'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='rollingstockimage', + unique_together=set(), + ), + migrations.AddField( + model_name='rollingstockimage', + name='is_thumbnail', + field=models.BooleanField(default=False), + preserve_default=False, + ), + ] diff --git a/dcc/roster/models.py b/dcc/roster/models.py index 9a24fc0..6417c80 100644 --- a/dcc/roster/models.py +++ b/dcc/roster/models.py @@ -123,18 +123,22 @@ class RollingStockDocument(models.Model): class RollingStockImage(models.Model): rolling_stock = models.ForeignKey(RollingStock, on_delete=models.CASCADE) image = models.ImageField(upload_to="images/", null=True, blank=True) + is_thumbnail = models.BooleanField() def image_thumbnail(self): return get_image_preview(self.image.url) image_thumbnail.short_description = "Preview" - class Meta(object): - unique_together = ("rolling_stock", "image") - 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 RollingStockProperty(models.Model): rolling_stock = models.ForeignKey(