From df556c7c4271b0a1e15528fa613493d71be702e8 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Mon, 24 Jun 2024 17:33:02 -0400 Subject: [PATCH] feat: remove choices, add validator & increase max_length of Aspect Ratio field --- ...ttings_host_image_aspect_ratio_and_more.py | 34 +++++++++++++++++++ program/models.py | 15 +++++--- 2 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 program/migrations/0101_alter_radiosettings_host_image_aspect_ratio_and_more.py 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 00000000..2c3c636e --- /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 029c057a..45a0fc20 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) -- GitLab