summaryrefslogtreecommitdiff
path: root/helsinki/program/management/commands/importnotes.py
diff options
context:
space:
mode:
authorJohannes Raggam <raggam-nl@adm.at>2011-03-26 20:35:14 (GMT)
committerJohannes Raggam <raggam-nl@adm.at>2011-03-26 20:35:14 (GMT)
commitd277b4a96830dac291fa77c710ffcba1c802407d (patch)
tree4209a83efd4ab96b028b7daa8e89630dfe383e90 /helsinki/program/management/commands/importnotes.py
parentfaa08b0b5ff0da35708fdbfc0cf2475a051ee6e4 (diff)
refactor project structure
Diffstat (limited to 'helsinki/program/management/commands/importnotes.py')
-rw-r--r--helsinki/program/management/commands/importnotes.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/helsinki/program/management/commands/importnotes.py b/helsinki/program/management/commands/importnotes.py
new file mode 100644
index 0000000..19ddfed
--- /dev/null
+++ b/helsinki/program/management/commands/importnotes.py
@@ -0,0 +1,62 @@
+from django.contrib.auth.models import User
+from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
+from django.core.management.base import NoArgsCommand
+from django.utils.html import clean_html, strip_tags
+
+import MySQLdb
+
+from helsinki.program.models import Note, Show, TimeSlot
+
+USER = 'helsinki'
+PASSWD = 'helsinki'
+DB = 'helsinki'
+
+OWNER = User.objects.get(pk=1)
+
+class Command(NoArgsCommand):
+ help = 'Import notes from current program'
+
+ def handle_noargs(self, **options):
+ connection = MySQLdb.connect(user=USER, passwd=PASSWD, db=DB)
+ cursor = connection.cursor()
+
+ cursor.execute("""SELECT n.titel, n.datum, s.titel, n.notiz
+FROM notizen AS n JOIN sendungen AS s ON n.sendung_id=s.id
+WHERE n.sendung_id in (SELECT id FROM sendungen WHERE letzter_termin > current_date) AND n.titel != ''""")
+
+ counter = 0
+ for ntitel, datum, stitel, notiz in cursor.fetchall():
+ ntitel = strip_tags(ntitel)
+ stitel = strip_tags(stitel)
+ notiz = clean_html(notiz)
+
+ if stitel.endswith('(Wiederholung)'):
+ stitel = stitel[:-15]
+
+ if datum:
+ year, month, day = datum.year, datum.month, datum.day
+ try:
+ show = Show.objects.get(name=stitel)
+
+ try:
+ timeslot = TimeSlot.objects.get(programslot__show=show, start__year=year, start__month=month, start__day=day)
+ except ObjectDoesNotExist:
+ print 'no timeslot found for sendung "%s" and datum "%s"' % (stitel, datum)
+ except MultipleObjectsReturned:
+ print 'multiple timeslots found for sendung "%s" and datum "%s"' % (stitel, datum)
+ else:
+ note = Note(timeslot=timeslot, owner=OWNER, title=ntitel, content=notiz)
+
+ try:
+ note.save()
+ except:
+ print 'could not save note "%s" for show "%s" and datum "%s"' % (ntitel, stitel, datum)
+ else:
+ counter += 1
+ except ObjectDoesNotExist:
+ print 'show with name "%s" not found' % stitel
+
+ cursor.close()
+ connection.close()
+
+ print '%i notes imported' % counter