diff --git a/rowers/models.py b/rowers/models.py index 8ab4eb1f..f9d3f0a2 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -578,12 +578,16 @@ def course_length(course): totaldist += 1000.*dist[0] - vector = get_dir_vector(polygons[0],polygons[1]) - deltastart = get_delta(vector,polygons[0]) + try: + vector = get_dir_vector(polygons[0],polygons[1]) + deltastart = get_delta(vector,polygons[0]) - polygons = polygons.reverse() - vector = get_dir_vector(polygons[0],polygons[1]) - deltafinish = get_delta(vector,polygons[0]) + polygons = polygons.reverse() + vector = get_dir_vector(polygons[0],polygons[1]) + deltafinish = get_delta(vector,polygons[0]) + except IndexError: + deltastart = 0 + deltafinish = 0 return int(totaldist-deltastart-deltafinish) @@ -2644,14 +2648,31 @@ class VirtualRaceForm(ModelForm): startdatetime ) - end_time = cd['end_time'] + try: + end_time = cd['end_time'] + except KeyError: + raise forms.ValidationError( + 'Must have end time', + code='missing endtime' + ) + + if end_time is None: raise forms.ValidationError( 'Must have end time', code='missing endtime' ) - end_date = cd['enddate'] + try: + end_date = cd['enddate'] + except KeyError: + raise forms.ValidationError( + 'Missing or invalid end date', + code='missing end date' + ) + + + enddatetime = datetime.datetime.combine(end_date,end_time) enddatetime = pytz.timezone(timezone_str).localize( enddatetime