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…
	
	Add table
		
		Reference in a new issue
	
	 Brian Rosner
						Brian Rosner