Skip to content

Commit d9b53a5

Browse files
committed
Use unversioned links in ics agendas. Partially fixes ietf-tools#2542. Commit ready for merge.
- Legacy-Id: 15446
1 parent fd8af4b commit d9b53a5

3 files changed

Lines changed: 24 additions & 6 deletions

File tree

ietf/doc/models.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,16 @@ def revisions(self):
177177
revisions.sort()
178178
return revisions
179179

180+
180181
def href(self, meeting=None):
182+
return self._get_ref(meeting=meeting,meeting_doc_refs=settings.MEETING_DOC_HREFS)
183+
184+
185+
def gref(self, meeting=None):
186+
return self._get_ref(meeting=meeting,meeting_doc_refs=settings.MEETING_DOC_GREFS)
187+
188+
189+
def _get_ref(self, meeting=None, meeting_doc_refs=settings.MEETING_DOC_HREFS):
181190
"""
182191
Returns an url to the document text. This differs from .get_absolute_url(),
183192
which returns an url to the datatracker page for the document.
@@ -198,10 +207,10 @@ def href(self, meeting=None):
198207
pass
199208

200209

201-
if self.type_id in settings.DOC_HREFS and self.type_id in settings.MEETING_DOC_HREFS:
210+
if self.type_id in settings.DOC_HREFS and self.type_id in meeting_doc_refs:
202211
if self.meeting_related():
203212
self.is_meeting_related = True
204-
format = settings.MEETING_DOC_HREFS[self.type_id]
213+
format = meeting_doc_refs[self.type_id]
205214
else:
206215
self.is_meeting_related = False
207216
format = settings.DOC_HREFS[self.type_id]
@@ -211,7 +220,7 @@ def href(self, meeting=None):
211220
format = settings.DOC_HREFS['rfc']
212221
else:
213222
format = settings.DOC_HREFS[self.type_id]
214-
elif self.type_id in settings.MEETING_DOC_HREFS:
223+
elif self.type_id in meeting_doc_refs:
215224
self.is_meeting_related = True
216225
else:
217226
if len(self.external_url):
@@ -231,7 +240,7 @@ def href(self, meeting=None):
231240
# After IETF 96, meeting materials acquired revision
232241
# handling, and the document naming changed.
233242
if meeting.number.isdigit() and int(meeting.number) > 96:
234-
format = settings.MEETING_DOC_HREFS[self.type_id]
243+
format = meeting_doc_refs[self.type_id]
235244
else:
236245
format = settings.MEETING_DOC_OLD_HREFS[self.type_id]
237246
info = dict(doc=self, meeting=meeting)

ietf/settings.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,15 @@ def skip_unreadable_post(record):
621621
"bluesheets": "https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.external_url}",
622622
}
623623

624+
# For http references to documents without a version number (that is, to the current version at the time of reference)
625+
MEETING_DOC_GREFS = {
626+
"agenda": "/meeting/{meeting.number}/materials/{doc.name}",
627+
"minutes": "/meeting/{meeting.number}/materials/{doc.name}",
628+
"slides": "/meeting/{meeting.number}/materials/{doc.name}",
629+
"recording": "{doc.external_url}",
630+
"bluesheets": "https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.external_url}",
631+
}
632+
624633
# Override this in settings_local.py if needed
625634
CACHE_MIDDLEWARE_SECONDS = 300
626635
CACHE_MIDDLEWARE_KEY_PREFIX = ''

ietf/templates/meeting/agenda.ics

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ CLASS:PUBLIC
1111
DTSTART{% if schedule.meeting.time_zone %};TZID="{{schedule.meeting.time_zone}}"{%endif%}:{{ item.timeslot.time|date:"Ymd" }}T{{item.timeslot.time|date:"Hi"}}00
1212
DTEND{% if schedule.meeting.time_zone %};TZID="{{schedule.meeting.time_zone}}"{%endif%}:{{ item.timeslot.end_time|date:"Ymd" }}T{{item.timeslot.end_time|date:"Hi"}}00
1313
DTSTAMP:{{ item.timeslot.modified|date:"Ymd" }}T{{ item.timeslot.modified|date:"His" }}Z
14-
{% if item.session.agenda %}URL:{{item.session.agenda.href}}
14+
{% if item.session.agenda %}URL:{{item.session.agenda.gref}}
1515
DESCRIPTION:{{item.timeslot.name|ics_esc}}\n{% if item.session.agenda_note %}
1616
Note: {{item.session.agenda_note|ics_esc}}\n{% endif %}{% for material in item.session.materials.all %}
1717
\n{{material.type}}{% if material.type.name != "Agenda" %}
1818
({{material.title|ics_esc}}){% endif %}:
19-
{{material.href}}\n{% endfor %}
19+
{{material.gref}}\n{% endfor %}
2020
{% endif %}END:VEVENT
2121
{% endif %}{% endfor %}END:VCALENDAR{% endautoescape %}

0 commit comments

Comments
 (0)