Skip to content

Commit ce18346

Browse files
committed
Merged in [18466] from jennifer@painless-security.com:
Cancel multi-session meetings correctly. Fixes ietf-tools#2958. - Legacy-Id: 18505 Note: SVN reference [18466] has been migrated to Git commit c2ab6f5
2 parents 457821f + c2ab6f5 commit ce18346

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

ietf/meeting/tests_views.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2250,6 +2250,29 @@ def test_interim_request_multi_day_non_consecutive(self):
22502250
r = self.client.post(urlreverse("ietf.meeting.views.interim_request"),data)
22512251
self.assertContains(r, 'days must be consecutive')
22522252

2253+
def test_interim_request_multi_day_cancel(self):
2254+
"""All sessions of a multi-day interim request should be canceled"""
2255+
length_before = len(outbox)
2256+
date = datetime.date.today()+datetime.timedelta(days=15)
2257+
2258+
# Set up an interim request with several sessions
2259+
num_sessions = 3
2260+
meeting = MeetingFactory(type_id='interim', date=date)
2261+
for _ in range(num_sessions):
2262+
SessionFactory(meeting=meeting)
2263+
2264+
# Cancel the interim request
2265+
url = urlreverse('ietf.meeting.views.interim_request_cancel', kwargs={'number': meeting.number})
2266+
self.client.login(username="secretary", password="secretary+password")
2267+
r = self.client.post(url)
2268+
2269+
# Verify results
2270+
self.assertRedirects(r, urlreverse('ietf.meeting.views.upcoming'))
2271+
for session in add_event_info_to_session_qs(meeting.session_set.all()):
2272+
self.assertEqual(session.current_status, 'canceled')
2273+
self.assertEqual(len(outbox), length_before + 1)
2274+
self.assertIn('Interim Meeting Cancelled', outbox[-1]['Subject'])
2275+
22532276
def test_interim_request_series(self):
22542277
make_meeting_test_data()
22552278
meeting_count_before = Meeting.objects.filter(type='interim').count()

ietf/meeting/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3051,7 +3051,7 @@ def interim_request_cancel(request, number):
30513051
result_status = SessionStatusName.objects.get(slug='canceled' if was_scheduled else 'canceledpa')
30523052
for session in meeting.session_set.all():
30533053
SchedulingEvent.objects.create(
3054-
session=first_session,
3054+
session=session,
30553055
status=result_status,
30563056
by=request.user.person,
30573057
)

0 commit comments

Comments
 (0)