From d4ee1729a664a55c98a8df328272532957b4bce8 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 4 Apr 2017 14:37:28 +0200
Subject: [PATCH] initial values for configuration calendar colors added

---
 .../0025_configurationitem_calendar_items.py  | 35 +++++++++++++++++++
 smash/web/models/constants.py                 |  3 ++
 .../tests/test_model_configuration_item.py    | 14 ++++++++
 3 files changed, 52 insertions(+)
 create mode 100644 smash/web/migrations/0025_configurationitem_calendar_items.py
 create mode 100644 smash/web/tests/test_model_configuration_item.py

diff --git a/smash/web/migrations/0025_configurationitem_calendar_items.py b/smash/web/migrations/0025_configurationitem_calendar_items.py
new file mode 100644
index 00000000..a5c6a471
--- /dev/null
+++ b/smash/web/migrations/0025_configurationitem_calendar_items.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-04-04 09:43
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+from web.models.constants import CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE, \
+    NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE
+
+
+def configuration_item_color_fields(apps, schema_editor):
+    # We can't import the ConfigurationItem model directly as it may be a newer
+    # version than this migration expects. We use the historical version.
+    ConfigurationItem = apps.get_model("web", "ConfigurationItem")
+    cancelled_appointment_color = ConfigurationItem.objects.create()
+    cancelled_appointment_color.type = CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE
+    cancelled_appointment_color.value = "#b7babf"
+    cancelled_appointment_color.name = "Color for cancelled appointments"
+    cancelled_appointment_color.save()
+
+    cancelled_appointment_color = ConfigurationItem.objects.create()
+    cancelled_appointment_color.type = NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE
+    cancelled_appointment_color.value = "#ff0000"
+    cancelled_appointment_color.name = "Color for NO SHOW appointments"
+    cancelled_appointment_color.save()
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('web', '0024_configurationitem'),
+    ]
+
+    operations = [
+        migrations.RunPython(configuration_item_color_fields),
+    ]
diff --git a/smash/web/models/constants.py b/smash/web/models/constants.py
index 333f0baa..cb52bd3a 100644
--- a/smash/web/models/constants.py
+++ b/smash/web/models/constants.py
@@ -27,3 +27,6 @@ CONTACT_TYPES_CHOICES = (
     (CONTACT_TYPES_PHONE, 'Phone'),
     (CONTACT_TYPES_SMS, 'SMS'),
 )
+
+CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE = "CANCELLED_APPOINTMENT_COLOR"
+NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE = "NO_SHOW_APPOINTMENT_COLOR"
diff --git a/smash/web/tests/test_model_configuration_item.py b/smash/web/tests/test_model_configuration_item.py
new file mode 100644
index 00000000..be211a79
--- /dev/null
+++ b/smash/web/tests/test_model_configuration_item.py
@@ -0,0 +1,14 @@
+from django.test import TestCase
+
+from web.models import ConfigurationItem
+from web.models.constants import CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE, \
+    NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE
+
+
+class ConfigurationItemModelTests(TestCase):
+    def test_init_data(self):
+        items = ConfigurationItem.objects.filter(type=CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE)
+        self.assertTrue(len(items) > 0)
+
+        items = ConfigurationItem.objects.filter(type=NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE)
+        self.assertTrue(len(items) > 0)
-- 
GitLab