added create_slot schedule helper
This commit is contained in:
parent
15403668ed
commit
29c95fc967
1 changed files with 30 additions and 0 deletions
30
symposion/schedule/helpers.py
Normal file
30
symposion/schedule/helpers.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
"""
|
||||
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)
|
Loading…
Reference in a new issue