Files @ cb4b0fac3871
Branch filter:

Location: symposion_app/symposion/schedule/helpers.py

Patrick Altman
Merge branch 'django1.6-compatibility' of https://github.com/mbrochh/symposion into mbrochh-django1.6-compatibility

Conflicts:
symposion/boxes/urls.py
symposion/cms/urls.py
symposion/conference/urls.py
symposion/proposals/models.py
symposion/proposals/urls.py
symposion/reviews/urls.py
symposion/schedule/models.py
symposion/schedule/urls.py
symposion/speakers/urls.py
symposion/sponsorship/urls.py
symposion/teams/urls.py
"""
This file contains functions that are useful to humans at the shell for
manipulating the database in more natural ways.
"""
from django.db import transaction

from .models import Schedule, Day, Room, Slot, SlotKind, SlotRoom


@transaction.commit_on_success
def create_slot(section_slug, date, kind, start, end, rooms):
    schedule = Schedule.objects.get(section__slug=section_slug)
    slot = Slot()
    slot.day = Day.objects.get(schedule=schedule, date=date)
    slot.kind = SlotKind.objects.get(schedule=schedule, label=kind)
    slot.start = start
    slot.end = end
    slot.save(force_insert=True)
    if rooms == "all":
        rooms_qs = Room.objects.filter(schedule=schedule).order_by("order")
    else:
        rooms_qs = Room.objects.filter(schedule=schedule, name__in=rooms).order_by("order")
        if rooms_qs.count() != len(rooms):
            raise Exception("input rooms do not match queried rooms; typo?")
    for room in rooms_qs:
        slot_room = SlotRoom()
        slot_room.slot = slot
        slot_room.room = room
        slot_room.save(force_insert=True)
    print "created {} [start={}; end={}]".format(slot.kind.label, slot.start, slot.end)