From 11ff3ea58c83f82e4d9d7b58f4f57a8718a2f8a2 Mon Sep 17 00:00:00 2001
From: Christian Pointner <equinox@helsinki.at>
Date: Fri, 6 Jan 2017 02:07:50 +0100
Subject: added support for new noplaying db format


diff --git a/nop/migrations/0001_initial.py b/nop/migrations/0001_initial.py
index 67a04e8..0285517 100644
--- a/nop/migrations/0001_initial.py
+++ b/nop/migrations/0001_initial.py
@@ -2,6 +2,7 @@
 from __future__ import unicode_literals
 
 from django.db import migrations, models
+import nop.models
 
 
 class Migration(migrations.Migration):
@@ -22,7 +23,7 @@ class Migration(migrations.Migration):
                 ('title', models.CharField(max_length=765, blank=True)),
                 ('artist', models.CharField(max_length=765, blank=True)),
                 ('album', models.CharField(max_length=765, blank=True)),
-                ('ismusic', models.IntegerField(null=True, blank=True)),
+                ('carttype', nop.models.CartTypeField(max_length=64, blank=True)),
             ],
             options={
                 'ordering': ['-timestamp'],
@@ -39,7 +40,7 @@ class Migration(migrations.Migration):
                 ('title', models.CharField(max_length=765, blank=True)),
                 ('artist', models.CharField(max_length=765, blank=True)),
                 ('album', models.CharField(max_length=765, blank=True)),
-                ('ismusic', models.IntegerField(null=True, blank=True)),
+                ('carttype', nop.models.CartTypeField(max_length=64, blank=True)),
             ],
             options={
                 'ordering': ['-timestamp'],
diff --git a/nop/models.py b/nop/models.py
index 1b39eed..e9b23e6 100644
--- a/nop/models.py
+++ b/nop/models.py
@@ -1,5 +1,16 @@
 from django.db import models
 
+class CartTypeField(models.Field):
+    def __init__(self, *args, **kwargs):
+        self.types = [('show', 'Show'),
+                      ('pool', 'Musicpool'),
+                      ('jingle', 'Jingle'),
+                     ]
+        super(CartTypeField, self).__init__(*args, **kwargs)
+
+    def db_type(self, connection):
+        return "ENUM({})".format(','.join("'{}'".format(col)
+                                          for col, _ in self.types))
 
 class Master(models.Model):
     timestamp = models.BigIntegerField(primary_key=True)
@@ -9,7 +20,7 @@ class Master(models.Model):
     title = models.CharField(max_length=765, blank=True)
     artist = models.CharField(max_length=765, blank=True)
     album = models.CharField(max_length=765, blank=True)
-    ismusic = models.IntegerField(null=True, blank=True)
+    carttype = CartTypeField(max_length=64, blank=True)
 
     class Meta:
         db_table = u'master'
@@ -24,7 +35,7 @@ class Standby(models.Model):
     title = models.CharField(max_length=765, blank=True)
     artist = models.CharField(max_length=765, blank=True)
     album = models.CharField(max_length=765, blank=True)
-    ismusic = models.IntegerField(null=True, blank=True)
+    carttype = CartTypeField(max_length=64, blank=True)
 
     class Meta:
         db_table = u'standby'
-- 
cgit v0.10.2