Skip to content

Commit 8a43f7a

Browse files
committed
Added better handling for attempted (mistaken) uploads to unscheduled sessions.
- Legacy-Id: 14388
1 parent 6ddacb6 commit 8a43f7a

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

ietf/meeting/tests_views.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1655,6 +1655,27 @@ def test_upload_minutes_agenda(self):
16551655
self.assertEqual(doc.rev,'01')
16561656
self.assertTrue(session2.sessionpresentation_set.filter(document__type_id=doctype))
16571657

1658+
def test_upload_minutes_agenda_unscheduled(self):
1659+
for doctype in ('minutes','agenda'):
1660+
session = SessionFactory(meeting__type_id='ietf', add_to_schedule=False)
1661+
if doctype == 'minutes':
1662+
url = urlreverse('ietf.meeting.views.upload_session_minutes',kwargs={'num':session.meeting.number,'session_id':session.id})
1663+
else:
1664+
url = urlreverse('ietf.meeting.views.upload_session_agenda',kwargs={'num':session.meeting.number,'session_id':session.id})
1665+
self.client.logout()
1666+
login_testing_unauthorized(self,"secretary",url)
1667+
r = self.client.get(url)
1668+
self.assertEqual(r.status_code, 200)
1669+
q = PyQuery(r.content)
1670+
self.assertTrue('Upload' in unicode(q("Title")))
1671+
self.assertFalse(session.sessionpresentation_set.exists())
1672+
self.assertFalse(q('form input[type="checkbox"]'))
1673+
1674+
test_file = StringIO('this is some text for a test')
1675+
test_file.name = "not_really.txt"
1676+
r = self.client.post(url,dict(file=test_file,apply_to_all=False))
1677+
self.assertEqual(r.status_code, 410)
1678+
16581679
def test_upload_minutes_agenda_interim(self):
16591680
session=SessionFactory(meeting__type_id='interim')
16601681
for doctype in ('minutes','agenda'):

ietf/meeting/views.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,6 +1163,8 @@ def upload_session_bluesheets(request, session_id, num):
11631163
else:
11641164
ota = session.official_timeslotassignment()
11651165
sess_time = ota and ota.timeslot.time
1166+
if not sess_time:
1167+
return HttpResponse("Cannot receive uploads for an unscheduled session. Please check the session ID.", status=410, content_type="text/plain")
11661168
if session.meeting.type_id=='ietf':
11671169
name = 'bluesheets-%s-%s-%s' % (session.meeting.number,
11681170
session.group.acronym,
@@ -1253,6 +1255,8 @@ def upload_session_minutes(request, session_id, num):
12531255
else:
12541256
ota = session.official_timeslotassignment()
12551257
sess_time = ota and ota.timeslot.time
1258+
if not sess_time:
1259+
return HttpResponse("Cannot receive uploads for an unscheduled session. Please check the session ID.", status=410, content_type="text/plain")
12561260
if session.meeting.type_id=='ietf':
12571261
name = 'minutes-%s-%s' % (session.meeting.number,
12581262
session.group.acronym)
@@ -1359,6 +1363,8 @@ def upload_session_agenda(request, session_id, num):
13591363
else:
13601364
ota = session.official_timeslotassignment()
13611365
sess_time = ota and ota.timeslot.time
1366+
if not sess_time:
1367+
return HttpResponse("Cannot receive uploads for an unscheduled session. Please check the session ID.", status=410, content_type="text/plain")
13621368
if session.meeting.type_id=='ietf':
13631369
name = 'agenda-%s-%s' % (session.meeting.number,
13641370
session.group.acronym)

0 commit comments

Comments
 (0)