Skip to content

Commit 388b271

Browse files
committed
Fixed a 500 error that could occur if someone manyally entered a proceedings url to upload materials to a nonexistent meeting/group combination.
- Legacy-Id: 8481
1 parent 5a68198 commit 388b271

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

ietf/secr/proceedings/views.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import os
55
import shutil
66

7+
import debug # pyflakes:ignore
8+
79
from django.conf import settings
810
from django.contrib import messages
911
from django.core.exceptions import ObjectDoesNotExist
@@ -849,11 +851,22 @@ def upload_unified(request, meeting_num, acronym=None, session_id=None):
849851
session_id all the time but this makes for an ugly URL which most of the time would be
850852
avoided by using acronym.
851853
'''
854+
def redirection_back(meeting, group):
855+
if meeting.type.slug == 'interim':
856+
url = reverse('proceedings_interim', kwargs={'acronym':group.acronym})
857+
else:
858+
url = reverse('proceedings_select', kwargs={'meeting_num':meeting.number})
859+
return HttpResponseRedirect(url)
860+
852861
meeting = get_object_or_404(Meeting, number=meeting_num)
853862
now = datetime.datetime.now()
854863
if acronym:
855864
group = get_object_or_404(Group, acronym=acronym)
856865
sessions = Session.objects.filter(meeting=meeting,group=group)
866+
if not sessions.exists():
867+
meeting_name = "IETF %s"%meeting.number if meeting.number.isdigit() else meeting.number
868+
messages.warning(request, 'There does not seem to be a %s session in %s.' % (group.acronym, meeting_name))
869+
return redirection_back(meeting, group)
857870
session = sessions[0]
858871
session_name = ''
859872
elif session_id:
@@ -865,12 +878,7 @@ def upload_unified(request, meeting_num, acronym=None, session_id=None):
865878
if request.method == 'POST':
866879
button_text = request.POST.get('submit','')
867880
if button_text == 'Back':
868-
if meeting.type.slug == 'interim':
869-
url = reverse('proceedings_interim', kwargs={'acronym':group.acronym})
870-
else:
871-
url = reverse('proceedings_select', kwargs={'meeting_num':meeting_num})
872-
return HttpResponseRedirect(url)
873-
881+
return redirection_back(meeting, group)
874882
form = UnifiedUploadForm(request.POST,request.FILES)
875883
if form.is_valid():
876884
material_type = form.cleaned_data['material_type']

0 commit comments

Comments
 (0)