--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.24 on 2020-01-06 19:27
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('nonstop', '0017_auto_20200106_1638'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='jingle',
+ name='default_for_initial_diffusions',
+ field=models.BooleanField(default=False, verbose_name='Default for initial diffusions'),
+ ),
+ migrations.AddField(
+ model_name='jingle',
+ name='default_for_reruns',
+ field=models.BooleanField(default=False, verbose_name='Default for reruns'),
+ ),
+ migrations.AddField(
+ model_name='jingle',
+ name='default_for_streams',
+ field=models.BooleanField(default=False, verbose_name='Default for streams'),
+ ),
+ ]
label = models.CharField(_('Label'), max_length=100)
filepath = models.CharField(_('File Path'), max_length=255)
duration = models.DurationField(_('Duration'), null=True, blank=True)
+ default_for_initial_diffusions = models.BooleanField(_('Default for initial diffusions'), default=False)
+ default_for_reruns = models.BooleanField(_('Default for reruns'), default=False)
+ default_for_streams = models.BooleanField(_('Default for streams'), default=False)
def __str__(self):
return self.label
+ def save(self, **kwargs):
+ for attr in ('default_for_initial_diffusions', 'default_for_reruns', 'default_for_streams'):
+ if getattr(self, attr):
+ Jingle.objects.all().update(**{attr: False})
+ return super(Jingle, self).save(**kwargs)
+
class Stream(models.Model):
class Meta:
from django.views.generic.list import ListView
from .forms import UploadTracksForm, TrackMetaForm, TrackSearchForm, CleanupForm
-from .models import SomaLogLine, Track, Artist, NonstopFile, StreamedDiffusion
+from .models import SomaLogLine, Track, Artist, NonstopFile, StreamedDiffusion, Jingle
from emissions.models import Nonstop, Diffusion
from . import utils
fields = ['jingle', 'stream']
template_name = 'nonstop/streamed-diffusion.html'
+ def get_initial(self):
+ initial = super(AddStreamedDiffusionView, self).get_initial()
+ initial['jingle'] = Jingle.objects.filter(default_for_streams=True).first()
+ return initial
+
def form_valid(self, form):
form.instance.diffusion_id = self.kwargs['pk']
response = super(AddStreamedDiffusionView, self).form_valid(form)