44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
from django.contrib.auth import get_user_model
|
|
from django.core.management.base import BaseCommand
|
|
from django.utils.datetime_safe import datetime
|
|
|
|
from events.models import Event, Location
|
|
import xlrd
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Importiert die alten Events" # @ReservedAssignment
|
|
|
|
def __init__(self):
|
|
self.author = get_user_model().objects.get(username="xeniac")
|
|
super(Command, self).__init__()
|
|
|
|
def handle(self, *args, **options):
|
|
try:
|
|
xls_file = xlrd.open_workbook(args[0])
|
|
except IndexError:
|
|
return "Bitte den Pfad zur Excel Datei angeben!"
|
|
except IOError:
|
|
return "Datei '%s' wurde nicht gefunden! " % args[0]
|
|
|
|
table = xls_file.sheet_by_index(0)
|
|
for row in xrange(1, table.nrows):
|
|
name = table.cell_value(row, 0)
|
|
print name
|
|
|
|
start = xlrd.xldate_as_tuple(table.cell_value(row, 1),
|
|
xls_file.datemode)
|
|
start = datetime(start[0], start[1], start[2], 0, 0, 0)
|
|
|
|
end = xlrd.xldate_as_tuple(table.cell_value(row, 2),
|
|
xls_file.datemode)
|
|
end = datetime(end[0], end[1], end[2], 23, 59, 59)
|
|
|
|
location = Location.objects.get(pk=table.cell_value(row, 3))
|
|
|
|
Event.objects.get_or_create(name=name, start=start, defaults={
|
|
'end': end,
|
|
'location': location,
|
|
})
|