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