]> git.0d.be Git - django-panik-nonstop.git/commitdiff
add flags to mark default jingles
authorFrédéric Péters <fpeters@0d.be>
Mon, 6 Jan 2020 18:30:24 +0000 (19:30 +0100)
committerFrédéric Péters <fpeters@0d.be>
Mon, 6 Jan 2020 18:30:24 +0000 (19:30 +0100)
nonstop/migrations/0018_auto_20200106_1927.py [new file with mode: 0644]
nonstop/models.py
nonstop/views.py

diff --git a/nonstop/migrations/0018_auto_20200106_1927.py b/nonstop/migrations/0018_auto_20200106_1927.py
new file mode 100644 (file)
index 0000000..398d761
--- /dev/null
@@ -0,0 +1,30 @@
+# -*- 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'),
+        ),
+    ]
index 8e833ef0e3eee71e63c179ab66ef57d360e9e3c8..1ab0daf232ac5c27e0afa34505a67d99fcca2e4f 100644 (file)
@@ -160,10 +160,19 @@ class Jingle(models.Model):
     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:
index ae3e57f43ae2a0601d72d4754e79628625a73a78..8f53b8f298743e5d9b867506db42afe31b329700 100644 (file)
@@ -21,7 +21,7 @@ from django.views.generic.edit import CreateView, FormView
 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
@@ -373,6 +373,11 @@ class AddStreamedDiffusionView(CreateView):
     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)