From 43faa555c4ccce26b8e2e2e2a4a5980a4e2c35b6 Mon Sep 17 00:00:00 2001
From: ingo <ingo.leindecker@fro.at>
Date: Thu, 28 Sep 2017 21:37:11 +0200
Subject: [PATCH] Fixes #19

---
 .gitignore        |  1 +
 nop/models.py     |  8 ++---
 nop/urls.py       |  4 +--
 nop/views.py      |  4 +--
 program/admin.py  |  6 ++--
 program/models.py | 86 +++++++++++++++++++++++------------------------
 program/urls.py   |  4 +--
 program/views.py  |  8 ++---
 pv/settings.py    |  4 +--
 9 files changed, 63 insertions(+), 62 deletions(-)

diff --git a/.gitignore b/.gitignore
index 3cd3c488..31a28420 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ pv/site_media/buttons/s-*.png
 pv/site_media/buttons/r-*.png
 pv/site_media/show_images/*
 pv/cache/*
+pv/mysql.cnf
\ No newline at end of file
diff --git a/nop/models.py b/nop/models.py
index e9b23e66..05e815b8 100644
--- a/nop/models.py
+++ b/nop/models.py
@@ -23,7 +23,7 @@ class Master(models.Model):
     carttype = CartTypeField(max_length=64, blank=True)
 
     class Meta:
-        db_table = u'master'
+        db_table = 'master'
         ordering = ['-timestamp']
 
 
@@ -38,7 +38,7 @@ class Standby(models.Model):
     carttype = CartTypeField(max_length=64, blank=True)
 
     class Meta:
-        db_table = u'standby'
+        db_table = 'standby'
         ordering = ['-timestamp']
 
 
@@ -47,5 +47,5 @@ class State(models.Model):
     state = models.CharField(max_length=96, blank=True)
 
     class Meta:
-        db_table = u'state'
-        ordering = ['-timestamp']
+        db_table = 'state'
+        ordering = ['-timestamp']
\ No newline at end of file
diff --git a/nop/urls.py b/nop/urls.py
index 936af7a4..1a1bc823 100644
--- a/nop/urls.py
+++ b/nop/urls.py
@@ -1,7 +1,7 @@
 from django.conf.urls import url
 from django.views.static import serve
 
-from views import get, get_current, nop_form
+from .views import get, get_current, nop_form
 
 import os
 
@@ -12,4 +12,4 @@ urlpatterns = [
     url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<hour>\d{1,2})/(?P<minute>\d{1,2})/?$', get),
     url(r'^$', nop_form),
     url(r'^static/(?P<path>.*)$', serve, {'document_root': NOP_SITE_MEDIA}),
-]
+]
\ No newline at end of file
diff --git a/nop/views.py b/nop/views.py
index 4c298293..55a349b0 100644
--- a/nop/views.py
+++ b/nop/views.py
@@ -5,7 +5,7 @@ from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
 from django.shortcuts import render_to_response
 from django.http import HttpResponse
 from django import forms
-from models import Master, Standby, State
+from .models import Master, Standby, State
 from program.models import TimeSlot
 
 import json
@@ -138,4 +138,4 @@ def nop_form(request):
     result = _bydate(date.year, date.month, date.day, time.hour, time.minute)
     context['nowplaying'] = result
     context['form'] = form
-    return render_to_response('nop_form.html', context)
+    return render_to_response('nop_form.html', context)
\ No newline at end of file
diff --git a/program/admin.py b/program/admin.py
index 413531e9..60d55473 100644
--- a/program/admin.py
+++ b/program/admin.py
@@ -1,8 +1,8 @@
 from django.contrib import admin
 from django.utils.translation import ugettext_lazy as _
 
-from models import BroadcastFormat, MusicFocus, ShowInformation, ShowTopic, Host, Note, ProgramSlot, Show, TimeSlot
-from forms import MusicFocusForm
+from .models import BroadcastFormat, MusicFocus, ShowInformation, ShowTopic, Host, Note, ProgramSlot, Show, TimeSlot
+from .forms import MusicFocusForm
 
 from datetime import date, datetime, timedelta
 
@@ -173,4 +173,4 @@ admin.site.register(ShowTopic, ShowTopicAdmin)
 admin.site.register(Host, HostAdmin)
 admin.site.register(Note, NoteAdmin)
 admin.site.register(ProgramSlot, ProgramSlotAdmin)
-admin.site.register(Show, ShowAdmin)
+admin.site.register(Show, ShowAdmin)
\ No newline at end of file
diff --git a/program/models.py b/program/models.py
index 8630b354..d3c9b942 100644
--- a/program/models.py
+++ b/program/models.py
@@ -11,7 +11,7 @@ from datetime import date, datetime, time, timedelta
 from dateutil.relativedelta import relativedelta
 from dateutil.rrule import rrule
 
-from utils import get_automation_id_choices
+from .utils import get_automation_id_choices
 
 
 class BroadcastFormat(models.Model):
@@ -27,14 +27,14 @@ class BroadcastFormat(models.Model):
         verbose_name_plural = _("Broadcast formats")
 
     def admin_color(self):
-        return u'<span style="background-color: %s; color: %s; padding: 0.2em">%s/%s</span>' % (
+        return '<span style="background-color: %s; color: %s; padding: 0.2em">%s/%s</span>' % (
             self.color, self.text_color, self.color, self.text_color)
 
     admin_color.short_description = _("Color")
     admin_color.allow_tags = True
 
-    def __unicode__(self):
-        return u'%s' % self.format
+    def __str__(self):
+        return '%s' % self.format
 
 
 class ShowInformation(models.Model):
@@ -53,19 +53,19 @@ class ShowInformation(models.Model):
     def admin_buttons(self):
         buttons = []
         if self.button:
-            buttons.append(u'<img src="%s" />' % self.button.url)
+            buttons.append('<img src="%s" />' % self.button.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         if self.button_hover:
-            buttons.append(u'<img src="%s" />' % self.button_hover.url)
+            buttons.append('<img src="%s" />' % self.button_hover.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         if self.big_button:
-            buttons.append(u'<img src="%s" />' % self.big_button.url)
+            buttons.append('<img src="%s" />' % self.big_button.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         return ' '.join(buttons)
 
@@ -90,8 +90,8 @@ class ShowInformation(models.Model):
         else:
             return '/site_media/buttons/default-17.png'
 
-    def __unicode__(self):
-        return u'%s' % self.information
+    def __str__(self):
+        return '%s' % self.information
 
 
 class ShowTopic(models.Model):
@@ -110,19 +110,19 @@ class ShowTopic(models.Model):
     def admin_buttons(self):
         buttons = []
         if self.button:
-            buttons.append(u'<img src="%s" />' % self.button.url)
+            buttons.append('<img src="%s" />' % self.button.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         if self.button_hover:
-            buttons.append(u'<img src="%s" />' % self.button_hover.url)
+            buttons.append('<img src="%s" />' % self.button_hover.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         if self.big_button:
-            buttons.append(u'<img src="%s" />' % self.big_button.url)
+            buttons.append('<img src="%s" />' % self.big_button.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         return ' '.join(buttons)
 
@@ -147,8 +147,8 @@ class ShowTopic(models.Model):
         else:
             return '/site_media/buttons/default-17.png'
 
-    def __unicode__(self):
-        return u'%s' % self.topic
+    def __str__(self):
+        return '%s' % self.topic
 
 
 class MusicFocus(models.Model):
@@ -167,19 +167,19 @@ class MusicFocus(models.Model):
     def admin_buttons(self):
         buttons = []
         if self.button:
-            buttons.append(u'<img src="%s" />' % self.button.url)
+            buttons.append('<img src="%s" />' % self.button.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         if self.button_hover:
-            buttons.append(u'<img src="%s" />' % self.button_hover.url)
+            buttons.append('<img src="%s" />' % self.button_hover.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         if self.big_button:
-            buttons.append(u'<img src="%s" />' % self.big_button.url)
+            buttons.append('<img src="%s" />' % self.big_button.url)
         else:
-            buttons.append(u'x')
+            buttons.append('x')
 
         return ' '.join(buttons)
 
@@ -204,8 +204,8 @@ class MusicFocus(models.Model):
         else:
             return '/site_media/buttons/default-17.png'
 
-    def __unicode__(self):
-        return u'%s' % self.focus
+    def __str__(self):
+        return '%s' % self.focus
 
 
 class Host(models.Model):
@@ -219,8 +219,8 @@ class Host(models.Model):
         verbose_name = _("Host")
         verbose_name_plural = _("Hosts")
 
-    def __unicode__(self):
-        return u'%s' % self.name
+    def __str__(self):
+        return '%s' % self.name
 
     def get_absolute_url(self):
         return reverse('host-detail', args=[str(self.id)])
@@ -253,8 +253,8 @@ class Show(models.Model):
         verbose_name = _("Show")
         verbose_name_plural = _("Shows")
 
-    def __unicode__(self):
-        return u'%04d | %s' % (self.id, self.name)
+    def __str__(self):
+        return '%04d | %s' % (self.id, self.name)
 
     def get_absolute_url(self):
         return reverse('show-detail', args=[self.slug])
@@ -289,8 +289,8 @@ class RRule(models.Model):
         verbose_name = _("Recurrence rule")
         verbose_name_plural = _("Recurrence rules")
 
-    def __unicode__(self):
-        return u'%s' % self.name
+    def __str__(self):
+        return '%s' % self.name
 
 
 class ProgramSlot(models.Model):
@@ -321,18 +321,18 @@ class ProgramSlot(models.Model):
         verbose_name = _("Program slot")
         verbose_name_plural = _("Program slots")
 
-    def __unicode__(self):
+    def __str__(self):
         weekday = self.BYWEEKDAY_CHOICES[self.byweekday][1]
         tend = self.tend.strftime('%H:%M')
         dstart = self.dstart.strftime('%d. %b %Y')
         tstart = self.tstart.strftime('%H:%M')
 
         if self.rrule.freq == 0:
-            return u'%s, %s - %s' % (dstart, tstart, tend)
+            return '%s, %s - %s' % (dstart, tstart, tend)
         if self.rrule.freq == 3:
-            return u'%s, %s - %s' % (self.rrule, tstart, tend)
+            return '%s, %s - %s' % (self.rrule, tstart, tend)
         else:
-            return u'%s, %s, %s - %s' % (weekday, self.rrule, tstart, tend)
+            return '%s, %s, %s - %s' % (weekday, self.rrule, tstart, tend)
 
     def save(self, *args, **kwargs):
         if self.pk:
@@ -463,11 +463,11 @@ class TimeSlot(models.Model):
         verbose_name = _("Time slot")
         verbose_name_plural = _("Time slots")
 
-    def __unicode__(self):
+    def __str__(self):
         start = self.start.strftime('%d.%m.%Y %H:%M')
         end = self.end.strftime('%H:%M')
 
-        return u'%s - %s  |  %s' % (start, end, self.show.name)
+        return '%s - %s  |  %s' % (start, end, self.show.name)
 
     def save(self, *args, **kwargs):
         self.show = self.programslot.show
@@ -497,11 +497,11 @@ class Note(models.Model):
         verbose_name = _("Note")
         verbose_name_plural = _("Notes")
 
-    def __unicode__(self):
-        return u'%s - %s' % (self.title, self.timeslot)
+    def __str__(self):
+        return '%s - %s' % (self.title, self.timeslot)
 
     def save(self, *args, **kwargs):
         self.start = self.timeslot.start
         self.show = self.timeslot.programslot.show
 
-        super(Note, self).save(*args, **kwargs)
+        super(Note, self).save(*args, **kwargs)
\ No newline at end of file
diff --git a/program/urls.py b/program/urls.py
index abd65432..4bd76e66 100644
--- a/program/urls.py
+++ b/program/urls.py
@@ -2,7 +2,7 @@ from django.conf import settings
 from django.conf.urls import url
 from django.views.decorators.cache import cache_page
 from django.views.static import serve
-import views
+from .import views
 
 import os
 
@@ -25,4 +25,4 @@ urlpatterns = [
 ]
 
 if settings.DEBUG:
-    urlpatterns.append(url(r'^static/(?P<path>.*)$', serve, {'document_root': PROGRAM_SITE_MEDIA}))
+    urlpatterns.append(url(r'^static/(?P<path>.*)$', serve, {'document_root': PROGRAM_SITE_MEDIA}))
\ No newline at end of file
diff --git a/program/views.py b/program/views.py
index ae818135..ab92df66 100644
--- a/program/views.py
+++ b/program/views.py
@@ -8,7 +8,7 @@ from django.views.generic.base import TemplateView
 from django.views.generic.detail import DetailView
 from django.views.generic.list import ListView
 
-from models import BroadcastFormat, MusicFocus, Note, Show, ShowInformation, ShowTopic, TimeSlot, Host
+from .models import BroadcastFormat, MusicFocus, Note, Show, ShowInformation, ShowTopic, TimeSlot, Host
 
 from program.utils import tofirstdayinisoweek, get_cached_shows
 
@@ -209,7 +209,7 @@ def json_day_schedule(request, year=None, month=None, day=None):
 
         schedule.append(entry)
 
-    return HttpResponse(json.dumps(schedule, ensure_ascii=False, encoding='utf8').encode('utf8'),
+    return HttpResponse(json.dumps(schedule, ensure_ascii=False).encode('utf8'),
                         content_type="application/json; charset=utf-8")
 
 
@@ -235,5 +235,5 @@ def json_timeslots_specials(request):
         specials[automation_id]['pv_start'] = start
         specials[automation_id]['pv_end'] = end
 
-    return HttpResponse(json.dumps(specials, ensure_ascii=False, encoding='utf8').encode('utf8'),
-                        content_type="application/json; charset=utf-8")
+    return HttpResponse(json.dumps(specials, ensure_ascii=False).encode('utf8'),
+                        content_type="application/json; charset=utf-8")
\ No newline at end of file
diff --git a/pv/settings.py b/pv/settings.py
index 47b9d2e4..6a6c2515 100644
--- a/pv/settings.py
+++ b/pv/settings.py
@@ -105,6 +105,6 @@ MUSIKPROG_IDS = (
 SPECIAL_PROGRAM_IDS = ()
 
 try:
-    from local_settings import *
+    from .local_settings import *
 except ImportError:
-    pass
+    pass
\ No newline at end of file
-- 
GitLab