diff --git a/program/migrations/0120_playlistentry.py b/program/migrations/0120_playlistentry.py new file mode 100644 index 0000000000000000000000000000000000000000..fd1713a272021c464e8131acb525df920be9105c --- /dev/null +++ b/program/migrations/0120_playlistentry.py @@ -0,0 +1,37 @@ +# Generated by Django 4.2.16 on 2024-10-29 20:56 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("program", "0119_playlist"), + ] + + operations = [ + migrations.CreateModel( + name="PlaylistEntry", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + ("duration", models.FloatField(null=True)), + ("file_id", models.IntegerField(null=True)), + ("line_num", models.IntegerField()), + ("uri", models.CharField(blank=True, max_length=1024)), + ( + "playlist", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="entries", + to="program.playlist", + ), + ), + ], + ), + ] diff --git a/program/models.py b/program/models.py index 37520c4209d1297aaa842501e786f20925884367..982796ea35bc061e19ad6edae56490eeccbf88c2 100644 --- a/program/models.py +++ b/program/models.py @@ -586,6 +586,17 @@ class Playlist(models.Model): return f"{self.show.name} - {self.description}" if self.description else self.show.name +class PlaylistEntry(models.Model): + duration = models.FloatField(null=True) + file_id = models.IntegerField(null=True) + line_num = models.IntegerField(null=False) + playlist = models.ForeignKey(Playlist, on_delete=models.CASCADE, related_name="entries") + uri = models.CharField(blank=True, max_length=1024) + + def __str__(self): + return f"{self.uri} - {self.duration:.2f}" if self.duration else self.uri + + class ImageAspectRadioField(models.CharField): validators = [ RegexValidator(