diff --git a/program/migrations/0101_alter_radiosettings_host_image_aspect_ratio_and_more.py b/program/migrations/0101_alter_radiosettings_host_image_aspect_ratio_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..2c3c636ed09b27623bba4252b7b8dc602c013257 --- /dev/null +++ b/program/migrations/0101_alter_radiosettings_host_image_aspect_ratio_and_more.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.13 on 2024-06-24 21:31 + +import program.models +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("program", "0100_alter_userprofile_options"), + ] + + operations = [ + migrations.AlterField( + model_name="radiosettings", + name="host_image_aspect_ratio", + field=program.models.ImageAspectRadioField(default="1:1", max_length=11), + ), + migrations.AlterField( + model_name="radiosettings", + name="note_image_aspect_ratio", + field=program.models.ImageAspectRadioField(default="16:9", max_length=11), + ), + migrations.AlterField( + model_name="radiosettings", + name="show_image_aspect_ratio", + field=program.models.ImageAspectRadioField(default="16:9", max_length=11), + ), + migrations.AlterField( + model_name="radiosettings", + name="show_logo_aspect_ratio", + field=program.models.ImageAspectRadioField(default="1:1", max_length=11), + ), + ] diff --git a/program/models.py b/program/models.py index 029c057a41f0e2e2a0f09466e2faf5a48addad4f..45a0fc205c70ce93518456d39908f061293ddb21 100644 --- a/program/models.py +++ b/program/models.py @@ -23,6 +23,7 @@ from versatileimagefield.fields import PPOIField, VersatileImageField from django.contrib.auth.models import User from django.core.exceptions import ValidationError as DjangoValidationError +from django.core.validators import RegexValidator from django.db import models from django.db.models import Max, Q from django.utils import timezone @@ -551,12 +552,16 @@ class Playlist(models.Model): class ImageAspectRadioField(models.CharField): + validators = [ + RegexValidator( + code="invalid_aspect_ratio", + message="Enter a valid aspect ratio in the format int:int or float:float", + regex=r"^\d+(\.\d+)?:\d+(\.\d+)?$", + ) + ] + def __init__(self, *args, **kwargs): - kwargs["choices"] = [ - ("1:1", "1:1"), - ("16:9", "16:9"), - ] - kwargs["max_length"] = 4 + kwargs["max_length"] = 11 super().__init__(*args, **kwargs)