]> git.0d.be Git - django-panik-nonstop.git/commitdiff
add attribute to attach a jingle to an emission
authorFrédéric Péters <fpeters@0d.be>
Sun, 6 Sep 2020 14:18:49 +0000 (16:18 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sun, 6 Sep 2020 14:18:49 +0000 (16:18 +0200)
nonstop/forms.py
nonstop/migrations/0033_jingle_emission.py [new file with mode: 0644]
nonstop/models.py
nonstop/views.py
nonstop/widgets.py

index df69f11e334bb0b952689a4761df6bfe14c1592e..9bee25804d6689cae0510499022416cd7cd1d6da 100644 (file)
@@ -19,7 +19,7 @@ def get_search_nonstop_zones():
 
 
 def get_jingle_choices():
-    return [(x.id, x.label) for x in Jingle.objects.all()]
+    return [(x.id, x.label) for x in Jingle.objects.filter(emission__isnull=True)]
 
 
 def get_optional_jingle_choices():
diff --git a/nonstop/migrations/0033_jingle_emission.py b/nonstop/migrations/0033_jingle_emission.py
new file mode 100644 (file)
index 0000000..5ea17b3
--- /dev/null
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-09-06 16:11
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('emissions', '0015_auto_20200404_1510'),
+        ('nonstop', '0032_auto_20200905_1348'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='jingle',
+            name='emission',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='emissions.Emission'),
+        ),
+    ]
index 29c2cd2be3660369f5807048c6619b1add00bf2d..4ce419cbb562a346fc5da9549240fa2c7a0c8266 100644 (file)
@@ -225,6 +225,7 @@ class Jingle(models.Model):
     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)
+    emission = models.ForeignKey('emissions.Emission', null=True, blank=True)
 
     def __str__(self):
         return self.label
index ae5a68de2564be8a9b252dcfda6b4c9fe66cb858..52442b8966321cc26cc8048ea6447542cd733713 100644 (file)
@@ -134,6 +134,9 @@ class ArtistListView(ListView):
 class JinglesListView(ListView):
     model = Jingle
 
+    def get_queryset(self):
+        return super().get_queryset().filter(emission__isnull=True)
+
 
 class JingleAddView(CreateView):
     model = Jingle
index b8a674a6c459b0dcdfc8f53942f5ed7a802c4592..487ce72cc5fee8bf366ff0ee950d3876475c2924 100644 (file)
@@ -17,9 +17,7 @@ class JinglesWidget(SelectMultiple):
     def render(self, name, value, attrs=None, choices=(), renderer=None):
         s = []
         value = value or []
-        for jingle in Jingle.objects.all():
-            choice_id = jingle.id
-            choice_label = jingle.label
+        for choice_id, choice_label in (choices or self.choices):
             s.append(
                 '<li><label><input type="checkbox" '
                 '  name="%(name)s-%(choice_id)s" %(checked)s>'