Use sensible date format in symposion schedule upload
This commit is contained in:
		
							parent
							
								
									48ffffe3e3
								
							
						
					
					
						commit
						97d55b8876
					
				
					 1 changed files with 20 additions and 5 deletions
				
			
		
							
								
								
									
										25
									
								
								vendor/symposion/schedule/forms.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/symposion/schedule/forms.py
									
										
									
									
										vendored
									
									
								
							|  | @ -10,7 +10,7 @@ from django.db import IntegrityError, transaction | |||
| from django.db.models import Q | ||||
| 
 | ||||
| from symposion.schedule.models import (Day, Presentation, Room, SlotKind, Slot, | ||||
|                                        SlotRoom) | ||||
|                                        SlotRoom, ProposalBase) | ||||
| 
 | ||||
| 
 | ||||
| class SlotEditForm(forms.Form): | ||||
|  | @ -58,6 +58,8 @@ class ScheduleSectionForm(forms.Form): | |||
|     DATE_KEY = 'date' | ||||
|     START_KEY = 'time_start' | ||||
|     END_KEY = 'time_end' | ||||
|     EXCLUSIVE = 'exclusive' | ||||
|     PROPOSAL = 'proposal_id' | ||||
|     KIND = 'kind' | ||||
| 
 | ||||
|     filename = forms.FileField( | ||||
|  | @ -103,6 +105,7 @@ class ScheduleSectionForm(forms.Form): | |||
|                 room = Room.objects.create( | ||||
|                     schedule=self.schedule, name=room, order=i | ||||
|                 ) | ||||
|                 created = True | ||||
|             if created: | ||||
|                 created_rooms.append(room) | ||||
|         return created_rooms | ||||
|  | @ -113,7 +116,7 @@ class ScheduleSectionForm(forms.Form): | |||
|         days = set([x[self.DATE_KEY] for x in data]) | ||||
|         for day in days: | ||||
|             try: | ||||
|                 date = datetime.strptime(day, "%m/%d/%Y") | ||||
|                 date = datetime.strptime(day, "%Y-%m-%d") | ||||
|             except ValueError: | ||||
|                 [x.delete() for x in created_days] | ||||
|                 return messages.ERROR, u'Malformed data found: %s.' % day | ||||
|  | @ -138,7 +141,7 @@ class ScheduleSectionForm(forms.Form): | |||
|             room = Room.objects.get( | ||||
|                 schedule=self.schedule, name=row[self.ROOM_KEY] | ||||
|             ) | ||||
|             date = datetime.strptime(row[self.DATE_KEY], "%m/%d/%Y") | ||||
|             date = datetime.strptime(row[self.DATE_KEY], "%Y-%m-%d") | ||||
|             day = Day.objects.get(schedule=self.schedule, date=date) | ||||
|             start, end = self._get_start_end_times(row) | ||||
|             slot_kind, created = SlotKind.objects.get_or_create( | ||||
|  | @ -148,13 +151,13 @@ class ScheduleSectionForm(forms.Form): | |||
|                 created_items.append(slot_kind) | ||||
|             if row[self.KIND] == 'plenary': | ||||
|                 slot, created = Slot.objects.get_or_create( | ||||
|                     kind=slot_kind, day=day, start=start, end=end | ||||
|                     kind=slot_kind, day=day, start=start, end=end, exclusive=bool(int(row[self.EXCLUSIVE])) | ||||
|                 ) | ||||
|                 if created: | ||||
|                     created_items.append(slot) | ||||
|             else: | ||||
|                 slot = Slot.objects.create( | ||||
|                     kind=slot_kind, day=day, start=start, end=end | ||||
|                     kind=slot_kind, day=day, start=start, end=end, exclusive=bool(int(row[self.EXCLUSIVE])) | ||||
|                 ) | ||||
|                 created_items.append(slot) | ||||
|             try: | ||||
|  | @ -165,6 +168,18 @@ class ScheduleSectionForm(forms.Form): | |||
|                 for x in created_items: | ||||
|                     x.delete() | ||||
|                 return messages.ERROR, u'An overlap occurred; the import was cancelled.' | ||||
| 
 | ||||
|             if row[self.PROPOSAL]: | ||||
|                 proposal = ProposalBase.objects.get(id=row[self.PROPOSAL]) | ||||
|                 Presentation.objects.get_or_create( | ||||
|                     slot=slot, | ||||
|                     section_id=1, | ||||
|                     proposal_base=proposal, | ||||
|                     speaker=proposal.speaker, | ||||
|                     title=proposal.title, | ||||
|                     abstract=proposal.abstract | ||||
|                 ) | ||||
| 
 | ||||
|         return messages.SUCCESS, u'Your schedule has been imported.' | ||||
| 
 | ||||
|     def delete_schedule(self): | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Tobias
						Tobias