Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

added create_slot schedule helper

  • Loading branch information...
commit 29c95fc96723d9d0fff6a3e90ffc7f294035b413 1 parent 1540366
Brian Rosner brosner authored
Showing with 30 additions and 0 deletions.
  1. +30 −0 symposion/schedule/helpers.py
30 symposion/schedule/helpers.py
View
@@ -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)
Please sign in to comment.
Something went wrong with that request. Please try again.