From 51327d07672e0c799acded704a26b4925d614cf2 Mon Sep 17 00:00:00 2001
From: Robert Sparks <rjsparks@nostrum.com>
Date: Wed, 11 Mar 2020 15:28:15 +0000
Subject: [PATCH] Correctly represent cancelled sessions in ics files. Fixes
 #2905. Commit ready for merge.  - Legacy-Id: 17418

---
 ietf/meeting/tests_views.py | 8 ++++++++
 ietf/meeting/views.py       | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py
index da3513273..e1ebd3598 100644
--- a/ietf/meeting/tests_views.py
+++ b/ietf/meeting/tests_views.py
@@ -607,6 +607,14 @@ class MeetingTests(TestCase):
         self.assertEqual(response.status_code,200)
         self.assertEqual(response.get('Content-Type'), 'text/calendar')
 
+    def test_cancelled_ics(self):
+        session=SessionFactory(meeting__type_id='ietf',status_id='canceled')
+        url = urlreverse('ietf.meeting.views.ical_agenda', kwargs=dict(num=session.meeting.number))
+        r = self.client.get(url)
+        self.assertEqual(r.status_code,200)
+        self.assertIn('STATUS:CANCELLED',unicontent(r))
+        self.assertNotIn('STATUS:CONFIRMED',unicontent(r))
+
 class ReorderSlidesTests(TestCase):
 
     def test_add_slides_to_session(self):
diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py
index 89e61b12b..e4c7a6c55 100644
--- a/ietf/meeting/views.py
+++ b/ietf/meeting/views.py
@@ -952,7 +952,7 @@ def ical_agenda(request, num=None, name=None, acronym=None, session_id=None):
 
     for a in assignments:
         if a.session:
-            a.session.ical_status = ical_session_status(a.session)
+            a.session.ical_status = ical_session_status(a.session.current_status)
 
     return render(request, "meeting/agenda.ics", {
         "schedule": schedule,