Skip to content

Commit 45e8f68

Browse files
fix: Link chat log button to chatlog SessionPresentation if available (ietf-tools#5131)
1 parent 6c31c73 commit 45e8f68

2 files changed

Lines changed: 25 additions & 4 deletions

File tree

ietf/meeting/models.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,8 +1317,11 @@ def chat_room_url(self):
13171317
return settings.CHAT_URL_PATTERN.format(chat_room_name=self.chat_room_name())
13181318

13191319
def chat_archive_url(self):
1320-
# datatracker 8.8.0 released on 2022 July 15; before that, fall back to old log URL
1321-
if self.meeting.date <= datetime.date(2022, 7, 15):
1320+
chatlog = self.sessionpresentation_set.filter(document__type__slug='chatlog').first()
1321+
if chatlog is not None:
1322+
return chatlog.document.get_href()
1323+
elif self.meeting.date <= datetime.date(2022, 7, 15):
1324+
# datatracker 8.8.0 released on 2022 July 15; before that, fall back to old log URL
13221325
return f'https://www.ietf.org/jabber/logs/{ self.chat_room_name() }?C=M;O=D'
13231326
elif hasattr(settings,'CHAT_ARCHIVE_URL_PATTERN'):
13241327
return settings.CHAT_ARCHIVE_URL_PATTERN.format(chat_room_name=self.chat_room_name())

ietf/meeting/tests_models.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55

66
from mock import patch
77

8+
from django.conf import settings
9+
from django.test import override_settings
10+
811
from ietf.group.factories import GroupFactory, GroupHistoryFactory
9-
from ietf.meeting.factories import MeetingFactory, SessionFactory, AttendedFactory
12+
from ietf.meeting.factories import MeetingFactory, SessionFactory, AttendedFactory, SessionPresentationFactory
1013
from ietf.stats.factories import MeetingRegistrationFactory
1114
from ietf.utils.test_utils import TestCase
1215
from ietf.utils.timezone import date_today, datetime_today
@@ -116,7 +119,22 @@ def test_group_at_the_time(self):
116119

117120

118121
class SessionTests(TestCase):
119-
def test_chat_archive_url_with_jabber(self):
122+
def test_chat_archive_url(self):
123+
session = SessionFactory(
124+
meeting__date=datetime.date.today(),
125+
meeting__number=120, # needs to use proceedings_format_version > 1
126+
)
127+
with override_settings():
128+
if hasattr(settings, 'CHAT_ARCHIVE_URL_PATTERN'):
129+
del settings.CHAT_ARCHIVE_URL_PATTERN
130+
self.assertEqual(session.chat_archive_url(), session.chat_room_url())
131+
settings.CHAT_ARCHIVE_URL_PATTERN = 'http://chat.example.com'
132+
self.assertEqual(session.chat_archive_url(), 'http://chat.example.com')
133+
chatlog = SessionPresentationFactory(session=session, document__type_id='chatlog').document
134+
self.assertEqual(session.chat_archive_url(), chatlog.get_href())
135+
120136
# datatracker 8.8.0 rolled out on 2022-07-15. Before that, chat logs were jabber logs hosted at www.ietf.org.
121137
session_with_jabber = SessionFactory(group__acronym='fakeacronym', meeting__date=datetime.date(2022,7,14))
122138
self.assertEqual(session_with_jabber.chat_archive_url(), 'https://www.ietf.org/jabber/logs/fakeacronym?C=M;O=D')
139+
chatlog = SessionPresentationFactory(session=session_with_jabber, document__type_id='chatlog').document
140+
self.assertEqual(session_with_jabber.chat_archive_url(), chatlog.get_href())

0 commit comments

Comments
 (0)