Skip to content

Commit

Permalink
Update links in iCal description to be more useful. Fixes #3349. Comm…
Browse files Browse the repository at this point in the history
…it ready for merge.

 - Legacy-Id: 19384
  • Loading branch information
jennifer-richards committed Sep 22, 2021
1 parent fc98641 commit 7d59456
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 9 deletions.
10 changes: 9 additions & 1 deletion ietf/doc/templatetags/ietf_filters.py
Expand Up @@ -5,6 +5,7 @@
import bleach
import datetime
import re
from urllib.parse import urljoin

from email.utils import parseaddr

Expand Down Expand Up @@ -413,7 +414,6 @@ def format_snippet(text, trunc_words=25):
@register.simple_tag
def doc_edit_button(url_name, *args, **kwargs):
"""Given URL name/args/kwargs, looks up the URL just like "url" tag and returns a properly formatted button for the document material tables."""
from django.urls import reverse as urlreverse
return mark_safe('<a class="btn btn-default btn-xs" href="%s">Edit</a>' % (urlreverse(url_name, args=args, kwargs=kwargs)))

@register.filter
Expand Down Expand Up @@ -613,3 +613,11 @@ def action_holder_badge(action_holder):
else:
return '' # no alert needed


@register.simple_tag
def absurl(viewname, **kwargs):
"""Get the absolute URL for a view by name
Uses settings.IDTRACKER_BASE_URL as the base.
"""
return urljoin(settings.IDTRACKER_BASE_URL, urlreverse(viewname, kwargs=kwargs))
16 changes: 13 additions & 3 deletions ietf/meeting/tests_views.py
Expand Up @@ -247,16 +247,26 @@ def test_meeting_agenda(self):
# iCal
r = self.client.get(urlreverse("ietf.meeting.views.agenda_ical", kwargs=dict(num=meeting.number))
+ "?show=" + session.group.parent.acronym.upper())
assert_ical_response_is_valid(self, r)
self.assertContains(r, session.group.acronym)
self.assertContains(r, session.group.name)
self.assertContains(r, slot.location.name)
self.assertContains(r, "BEGIN:VTIMEZONE")
self.assertContains(r, "END:VTIMEZONE")

self.assertContains(r, session.agenda().get_href())
self.assertContains(r, session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().get_href())
# TODO - the ics view uses .all on a queryset in a view so it's showing the deleted slides.
#self.assertNotContains(r, session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().get_absolute_url())
self.assertContains(
r,
urlreverse(
'ietf.meeting.views.session_details',
kwargs=dict(num=meeting.number, acronym=session.group.acronym)),
msg_prefix='ical should contain link to meeting materials page for session')
self.assertContains(
r,
urlreverse(
'ietf.meeting.views.agenda', kwargs=dict(num=meeting.number)
) + f'#row-{session.official_timeslotassignment().slug()}',
msg_prefix='ical should contain link to agenda entry for session')

# week view
r = self.client.get(urlreverse("ietf.meeting.views.week_view", kwargs=dict(num=meeting.number)))
Expand Down
16 changes: 11 additions & 5 deletions ietf/templates/meeting/agenda.ics
@@ -1,4 +1,4 @@
{% load humanize %}{% autoescape off %}{% load ietf_filters %}{% load cache %}{% cache 1800 ietf_meeting_agenda_ics schedule.meeting.number request.path request.GET %}BEGIN:VCALENDAR
{% load humanize %}{% autoescape off %}{% load ietf_filters textfilters %}{% load cache %}{% cache 1800 ietf_meeting_agenda_ics schedule.meeting.number request.path request.GET %}BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//IETF//datatracker.ietf.org ical agenda//EN
Expand All @@ -14,9 +14,15 @@ DTSTAMP:{{ item.timeslot.modified|date:"Ymd" }}T{{ item.timeslot.modified|date:"
URL:{{item.session.agenda.get_versionless_href}}{% endif %}
DESCRIPTION:{{item.timeslot.name|ics_esc}}\n{% if item.session.agenda_note %}
Note: {{item.session.agenda_note|ics_esc}}\n{% endif %}{% if item.timeslot.location.webex_url %}
Webex: {{ item.timeslot.location.webex_url }}\n{% endif %}{% for material in item.session.materials.all %}
\n{{material.type}}{% if material.type.name != "Agenda" %}
({{material.title|ics_esc}}){% endif %}:
{{material.get_versionless_href}}\n{% endfor %}
\n
Webex: {{ item.timeslot.location.webex_url }}\n{% endif %}{% if item.timeslot.location.video_stream_url %}
\n
Meetecho: {{ item.timeslot.location.video_stream_url|format:item.session }}\n{% endif %}{% if item.session.agenda %}{% with agenda=item.session.agenda %}
\n
{{agenda.type}} {{agenda.get_versionless_href}}\n{% endwith %}{% endif %}
\n
Session materials: {% absurl 'ietf.meeting.views.session_details' num=schedule.meeting.number acronym=item.session.group.acronym %}\n{% if schedule.meeting.get_number is not None %}
\n{# link agenda for ietf meetings #}
See in schedule: {% absurl 'ietf.meeting.views.agenda' num=schedule.meeting.number %}#row-{{ item.slug }}\n{% endif %}
END:VEVENT
{% endif %}{% endfor %}END:VCALENDAR{% endcache %}{% endautoescape %}

0 comments on commit 7d59456

Please sign in to comment.