diff --git a/images/migrations/0009_imagevariant_is_primary_variant.py b/images/migrations/0009_imagevariant_is_primary_variant.py new file mode 100644 index 0000000..b2adcec --- /dev/null +++ b/images/migrations/0009_imagevariant_is_primary_variant.py @@ -0,0 +1,31 @@ +# Generated by Django 5.2 on 2025-05-04 13:36 + +from django.db import migrations, models + + +def set_primary_variants(apps, schema_editor): + Image = apps.get_model("images", "Image") + + for image in Image.objects.all(): + image.imagevariant_set.filter( + is_full_size=True, + file_type__in=["jpg", "png"], + gaussian_blur=0, + brightness=1, + ).update(is_primary_variant=True) + + +class Migration(migrations.Migration): + + dependencies = [ + ("images", "0008_imagevariant_regenerate"), + ] + + operations = [ + migrations.AddField( + model_name="imagevariant", + name="is_primary_variant", + field=models.BooleanField(default=False), + ), + migrations.RunPython(set_primary_variants), + ] diff --git a/images/models.py b/images/models.py index 52205ef..118dfc5 100644 --- a/images/models.py +++ b/images/models.py @@ -159,6 +159,7 @@ class ImageVariant(models.Model): width = models.IntegerField() gaussian_blur = models.FloatField(default=0) brightness = models.FloatField(default=1) + is_primary_variant = models.BooleanField(default=False) is_full_size = models.BooleanField(default=False) file_type = models.CharField(max_length=10) available = models.BooleanField(default=False)