import csv
import time
from datetime import datetime
from django import forms
from django.contrib import messages
from django.db import IntegrityError
from django.db import IntegrityError, transaction
from django.db.models import Q
from markitup.widgets import MarkItUpWidget
from symposion.schedule.models import (Day, Presentation, Room, SlotKind, Slot, SlotRoom)
from symposion.schedule.models import (Day, Presentation, Room, SlotKind, Slot,
SlotRoom)
class SlotEditForm(forms.Form):
def __init__(self, *args, **kwargs):
self.slot = kwargs.pop("slot")
@@ -142,16 +144,14 @@ class ScheduleSectionForm(forms.Form):
else:
slot = Slot.objects.create(
kind=slot_kind, day=day, start=start, end=end
)
created_items.append(slot)
try:
# @@@ TODO - upgrade Django, use atomic transactions
# with transaction.atomic():
# SlotRoom.objects.create(slot=slot, room=room)
SlotRoom.objects.create(slot=slot, room=room)
with transaction.atomic():
except IntegrityError:
# delete all created objects and report error
for x in created_items:
x.delete()
return messages.ERROR, u'An overlap occurred; the import was cancelled.'
return messages.SUCCESS, u'Your schedule has been imported.'