Tweaked the iCalendar urls, and added a test for interim meeting iCalendar files.
- Legacy-Id: 14764
This commit is contained in:
parent
a11cdd3b20
commit
1954fc1d9f
|
@ -1469,6 +1469,40 @@ class InterimTests(TestCase):
|
|||
self.assertTrue('Action Required: Minutes' in outbox[-1]['Subject'])
|
||||
|
||||
|
||||
def test_group_ical(self):
|
||||
make_meeting_test_data()
|
||||
meeting = Meeting.objects.filter(type='interim', session__group__acronym='mars').first()
|
||||
s1 = Session.objects.filter(meeting=meeting, group__acronym="mars").first()
|
||||
a1 = s1.official_timeslotassignment()
|
||||
t1 = a1.timeslot
|
||||
# Create an extra session
|
||||
t2 = TimeSlotFactory.create(meeting=meeting, time=datetime.datetime.combine(meeting.date, datetime.time(11, 30)))
|
||||
s2 = SessionFactory.create(meeting=meeting, group=s1.group, add_to_schedule=False)
|
||||
SchedTimeSessAssignment.objects.create(timeslot=t2, session=s2, schedule=meeting.agenda)
|
||||
#
|
||||
url = urlreverse('ietf.meeting.views.ical_agenda', kwargs={'num':meeting.number, 'acronym':s1.group.acronym, })
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertContains(r, 'BEGIN:VEVENT')
|
||||
self.assertEqual(r.content.count('UID'), 2)
|
||||
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
|
||||
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertContains(r, 'END:VEVENT')
|
||||
#
|
||||
url = urlreverse('ietf.meeting.views.ical_agenda', kwargs={'num':meeting.number, 'session_id':s1.id, })
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertContains(r, 'BEGIN:VEVENT')
|
||||
self.assertEqual(r.content.count('UID'), 1)
|
||||
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
|
||||
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertNotContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertContains(r, 'END:VEVENT')
|
||||
|
||||
|
||||
class AjaxTests(TestCase):
|
||||
def test_ajax_get_utc(self):
|
||||
# test bad queries
|
||||
|
|
|
@ -9,6 +9,7 @@ from ietf.utils.urls import url
|
|||
|
||||
safe_for_all_meeting_types = [
|
||||
url(r'^session/(?P<acronym>[-a-z0-9]+)/?$', views.session_details),
|
||||
url(r'^session/(?P<acronym>[-a-z0-9]+)\.ics$', views.ical_agenda),
|
||||
url(r'^session/(?P<session_id>\d+)/drafts$', views.add_session_drafts),
|
||||
url(r'^session/(?P<session_id>\d+)/bluesheets$', views.upload_session_bluesheets),
|
||||
url(r'^session/(?P<session_id>\d+)/minutes$', views.upload_session_minutes),
|
||||
|
@ -17,7 +18,6 @@ safe_for_all_meeting_types = [
|
|||
url(r'^session/(?P<session_id>\d+)/slides/%(name)s/order$' % settings.URL_REGEXPS, views.set_slide_order),
|
||||
url(r'^session/(?P<session_id>\d+)/doc/%(name)s/remove$' % settings.URL_REGEXPS, views.remove_sessionpresentation),
|
||||
url(r'^session/(?P<session_id>\d+)\.ics$', views.ical_agenda),
|
||||
url(r'^session/(?P<acronym>[-a-z0-9]+).ics$', views.ical_agenda),
|
||||
]
|
||||
|
||||
|
||||
|
@ -73,10 +73,8 @@ type_ietf_only_patterns_id_optional = [
|
|||
url(r'^agenda(?P<ext>.csv)$', views.agenda),
|
||||
url(r'^agenda/edit$', views.edit_agenda),
|
||||
url(r'^requests$', views.meeting_requests),
|
||||
url(r'^agenda/agenda.ics$', views.ical_agenda),
|
||||
url(r'^agenda.ics$', views.ical_agenda),
|
||||
url(r'^session/(?P<session_id>\d+)\.ics$', views.ical_agenda),
|
||||
url(r'^session/(?P<acronym>[-a-z0-9]+).ics$', views.ical_agenda),
|
||||
url(r'^agenda/agenda\.ics$', views.ical_agenda),
|
||||
url(r'^agenda\.ics$', views.ical_agenda),
|
||||
url(r'^agenda.json$', views.json_agenda),
|
||||
url(r'^agenda/week-view(?:.html)?/?$', views.week_view),
|
||||
url(r'^agenda/room-view(?:.html)?/?$', views.room_view),
|
||||
|
@ -112,7 +110,7 @@ urlpatterns = [
|
|||
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
|
||||
url(r'^past/?$', views.past),
|
||||
url(r'^upcoming/?$', views.upcoming),
|
||||
url(r'^upcoming.ics/?$', views.upcoming_ical),
|
||||
url(r'^upcoming\.ics/?$', views.upcoming_ical),
|
||||
# Then patterns from more specific to less
|
||||
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(type_interim_patterns)),
|
||||
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
|
||||
|
|
Loading…
Reference in a new issue